Доступ к импорту в дочернем классе?

#php #laravel

#php #laravel

Вопрос:

Для моего родителя я объявил:

 use AppModelsUser as MyUser;

class MyParentController extends MyChildController
  

Но как я могу получить доступ MyUser к моему дочернему расширенному классу?

Я пробовал $this-> и parent:: безуспешно.

Комментарии:

1. MyUser::something() ? Мне неясно, что именно вы здесь хотите, не могли бы вы уточнить свой вопрос.

2. Я просто хочу получить доступ к MyUser модели в MyChildController

3. Вам нужно будет включить use AppModelsUser as MyUser; в MyChildController , если вы хотите использовать в одном из его методов.

4. @AlbertoGuilherme хорошо, если это так, он должен быть динамическим для родительского, лучший способ сделать его динамическим для родительского и ссылаться на него для дочернего?

5. @panthro Я опубликовал ответ, посмотрим, поможет ли это =)

Ответ №1:

Зависит от того, к чему вы пытаетесь получить доступ в MyUser

Для статического метода

 MyUser::methodYouWantToAccess();
  

Для динамического

 $myUser = new MyUser();
  

Комментарии:

1. Статический метод в модели, я пробовал MyUser::methodYouWantToAccess(); , но просто получаю ошибку class not found.

2.Вы уверены, что путь к пользователю указан правильно «App Models User», Возможно, для уменьшения сложности попробуйте использовать его с его оригинальным именем, ` use AppModelsUser; class MyParentController extends MyChildController { $var = User::method() }

3. Также убедитесь, что в вашем пользовательском классе нет синтаксических ошибок

Ответ №2:

Первым делом:

class MyParentController extends MyChildController : это говорит о том, что MyParentController будет наследоваться от MyChildController .

Если вы хотите MyParentController быть базовым контроллером, вы определите его следующим образом:

 use AppModelsUser 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();
}