2016-10-18 78 views
0

這工作,以及:我可以使用變量作爲班級的名字嗎?

$news_single = news::whereid($post_id)->first(); 

但是,這將引發一個錯誤:

$class_name = 'news'; 
$news_single = $class_name::whereid($post_id)->first(); 

錯誤:

FatalErrorException in PostController.php line 20: Class 'news' not found

我怎樣才能解決呢?


我使用一個變量作爲類的名稱正在動態查詢(有點)的意圖。我的意思是我得到的URL的類名稱,並指定適當的型號它。就像這樣:

public function ShowPost(Request $request){ 
    $post_id = $request->segment(2); 
    $class_name = $request->segment(1); 
    $post  = $class_name::whereid($post_id)->first(); 
    return view('ShowPost',compact('post')); 
} 
+2

{是}但我會認爲這是一個壞主意 – nogad

+0

@nogad爲什麼一個壞主意? – stack

+0

@stack任何命名空間到類? – StateLess

回答

0

我假設news類在某些命名空間。

您必須將名稱空間預先添加到字符串中。

$class_name = 'App\\' .'news'; 
$news_single = $class_name::whereid($post_id)->first(); 
相關問題