Я пишу webapp используя CodeIgniter, который требует аутентификации. Я создал модель, которая обрабатывает всю мою аутентификацию. Однако я не могу найти способ получить доступ к этой модели аутентификации из другой модели. Есть ли способ получить доступ к модели из другого режима или более эффективный способ проверки подлинности внутри CodeIgniter?Можете ли вы получить доступ к модели из другой модели в CodeIgniter?
ответ
В общем, вы не хотите создавать объекты внутри объекта. Это плохая привычка, вместо этого, написать чистый API и ввести модель в вашу модель.
<?php
// in your controller
$model1 = new Model1();
$model2 = new Model2();
$model2->setWhatever($model1);
?>
Не обрабатывайте аутентификацию в своей модели. Используйте только модели для взаимодействия с вашей базой данных, или ldap или что-то еще.
Я создал библиотеку Auth, которую я использую для управления аутентификацией и авторизацией. Вы можете получить доступ к такой библиотеке из своих контроллеров.
Кажется, вы можете загружать модели внутри моделей, хотя вы, вероятно, должны решить эту проблему другим способом. См. CodeIgniter forums для обсуждения.
class SomeModel extends Model
{
function doSomething($foo)
{
$CI =& get_instance();
$CI->load->model('SomeOtherModel','NiceName',true);
// use $CI instead of $this to query the other models
$CI->NiceName->doSomethingElse();
}
}
Кроме того, я не понимаю, что говорит Тилл о том, что вы не должны создавать объекты внутри объектов. Конечно, вы должны! Отправка объектов в качестве аргументов мне кажется менее понятной.
Загрузка модели в модель теперь возможна с помощью нового CodeIgniter.
- 1. Можете ли вы получить доступ к подклассуемой модели из модели суперкласса в Django ORM?
- 2. Как получить доступ к модели из другой модели?
- 3. Можете ли вы получить данные модели в контроллере в CakePHP?
- 4. Вызов функции модели из другой модели CodeIgniter?
- 5. Доступ к модели, которая принадлежит другой модели
- 6. рельсы - не удается получить доступ к модели, принадлежащей другой модели
- 7. Доступ к имени пользователя из другой модели
- 8. Доступ к атрибутам другой модели
- 9. Как получить доступ к контроллеру угловой модели внутри другой модели?
- 10. Как вы можете использовать $ это ВЕ контроллер в модели CodeIgniter
- 11. CodeIgniter 2.1.0: Доступ к модели в рамках модели
- 12. Является ли загрузка модели в рамках другой модели CodeIgniter подходящей?
- 13. Как получить доступ к переменной конфигурации CodeIgniter из модели/контроллера?
- 14. Rails - Доступ к user_1 в другой модели
- 15. CodeIgniter-доступ от модели к контроллеру
- 16. ModelState.IsValid - Можете ли вы проверить часть модели
- 17. Рубин на рельсы доступ к модели информации к другой модели
- 18. Доступ к атрибутам другой модели в Rails
- 19. В CodeIgniter, как мне получить доступ к одной модели из другой?
- 20. Доступ к другой коллекции внутри базовой модели
- 21. Можете ли вы добавить дополнительные метаданные через аннотации данных к базовому свойству модели из дочерней модели?
- 22. Можно ли получить юникод модели из другой модели?
- 23. Загрузка и использование модели codeigniter из другой модели
- 24. Как получить доступ к модели MVC, созданной мной в CodeIgniter
- 25. Доступ к MainViewModel с другой модели просмотра
- 26. Доступ к модели из html
- 27. Можете ли вы получить доступ к EntityManagers из EntityListeners?
- 28. Codeigniter метод вызова модели из другой модели вызывает ошибки
- 29. Можете ли вы получить доступ к хромовым: // страницам из расширения?
- 30. Доступ к модели Codeigniter из файла, который находится у корня
Это хорошая практика? Потому что пользователь Model2 должен знать, что он зависит от Model1. Какова хорошая практика? – Sabya 2009-01-20 15:25:35
Да, лучше практиковать «вводить» зависимость, а также инициализировать Model2 внутри Model1. – Till 2009-01-21 19:57:52
Это не звучит хорошо с суровой точки зрения. Что делать, если у меня есть функция, которая изменяет аспект одной модели и запускает действие для другой модели? – wag2639 2010-06-24 19:31:37