На моем родителе я заявил:
use App\Models\User as MyUser;
class MyParentController extends MyChildController
Но как я могу получить доступ к MyUser
в моем дочернем расширенном классе?
Я пробовал $this->
и parent::
безуспешно.
Я просто хочу получить доступ к модели MyUser
в MyChildController
Вам нужно будет включить use App\Models\User as MyUser;
в MyChildController
, если вы хотите использовать в одном из его методов.
@AlbertoGuilherme хорошо, если это так, он должен быть динамическим для родителя, лучший способ сделать его динамическим для родителя и ссылаться на него для дочернего элемента?
@panthro Я отправил ответ, посмотрим, поможет ли это =)
Зависит от того, к чему вы пытаетесь получить доступ в MyUser
Для статического метода
MyUser::methodYouWantToAccess();
Для динамичного
$myUser = new MyUser();
Статический метод на модели, я пробовал MyUser::methodYouWantToAccess();
, но просто получаю ошибку class not found.
Вы уверены, что путь к пользователю правильный «App\Models\User». Возможно, для уменьшения сложности попробуйте использовать его с исходным именем, ` use App\Models\User;
class MyParentController extends MyChildController
{ $var = User::method() }
Также убедитесь, что в вашем классе User нет синтаксических ошибок.
Первым делом:
class MyParentController extends MyChildController
: это говорит о том, что MyParentController
получит наследство от MyChildController
.
Если вы хотите MyParentController
быть базовым контроллером, вы определите его следующим образом:
use App\Models\User as MyUser;
class MyParentController{
$my_user = new MyUser();//You will have to instantiate the MyUser in the father class.
}
Затем на вашем дочернем контроллере вы будете использовать следующее:
use "Insert path to your controllers"\MyParentController;
class MyChildController extends MyParentController{
//in this controller you will use like this
$my_user->methodYouWantToAccess();
}
MyUser::something()
? Мне непонятно, что именно вы хотите здесь, не могли бы вы уточнить свой вопрос.