Я пытаюсь объединить два веб-сайта, созданных с использованием Laravel 5, в один мультисайт (да, я не был таким опытным при принятии такого решения). Эти два веб-сайта предназначены для кошек и для собак.Laravel, выбирая класс во время выполнения
Моя проблема заключается в том, что у меня есть модель под названием Item
, одна в котах хранит вещи в другом столе, чем модель Item
у собак.
То, что я сделал в моем контроллере:
protected $posts_class;
public function __construct()
{
$this->items_class = "App\\Models\\" . config('domain') . "\\Item";
}
public function index()
{
$items = $this->items_class::all();
return view('items')->with('items', $items);
}
но продолжает давать ошибку:
syntax error, unexpected '::' (T_PAAMAYIM_NEKUDOTAYIM)
однако, если я:
public function index()
{
$class= $this->items_class;
$items = $class::all();
}
это работает .. но Я не хочу дополнительных переменных в методе контроллера.
Хотелось бы знать, почему первый не работает. Если у кого-нибудь есть рекомендации относительно того, как сделать эту многоуровневую работу лучше, чем эта, тогда я открыт для предложений. Спасибо.
Спасибо! Это объясняет, почему то, что у меня есть, не работает. Это не аккуратный код для использования forward_static_call каждый раз, когда я использую модель в контроллере. – mrsparrow