2016-06-03 3 views
1

Это мой кодКак динамически изменять запрос модели в контроллере в laravel 5.2?

$showid=3; 
    $screenid='1'; 

    $seatdata=Screen1::all(); 

    $showtimedata=Showtime::where('showid',$showid)->get(); 
    $count =Showtime::where('showid',$showid)->count(); 

Теперь $ showid и $ screenid будет изменяться динамически, нет никаких проблем с showid это хорошо работает, , но всякий раз, когда изменения идентификатора экрана, то название модели написано в следующей строке должны изменить

$seatdata=Screen1::all(); 

Если говорить $ screenid = 2, то код должен стать как

$seatdata=Screen2::all(); 

Если говорить $ screenid = 3, то код должен стать как

$seatdata=Screen3::all(); 

Примечание Я уже создали модели Screen1, screen2, & SCREEN3

Я попытался сделать это, но он не работает

$showid=3; 
    $screenid='1'; 
    $screen='Screen'.$screenid; 

    $seatdata=$screen::all(); 

    $showtimedata=Showtime::where('showid',$showid)->get(); 
    $count =Showtime::where('showid',$showid)->count(); 

Это дает мне ошибку, что

FatalErrorException in SeatlayoutController.php line 27:Class 'Screen1' not found 

Помощь ценится ,

+0

'Screen1', вероятно, живет в пространстве имен. Попробуйте включить пространство имен следующим образом: '$ screen = '\ Namespace \ Of \ Screen'. $ Screenid;'. На стороне примечания, вы уверены, что так вы хотите это сделать? Я думаю, вам, возможно, придется переосмыслить, как работает ваш экран. – Doom5

+0

Да, я хочу делать только это. Спасибо за помощь – dollar

ответ

2

Попробуйте указать полное пространство имен в вашем классе, например

$screen='App\Screen'.$screenid; 
+0

Это сработало $ screenid = 3; $ screen = 'App \ Screen'. $ Screenid; \t $ seatdata = $ screen :: all(); – dollar

Смежные вопросы