【发布时间】:2017-02-27 05:36:51
【问题描述】:
这也有效:
$news_single = news::whereid($post_id)->first();
但这会引发错误:
$class_name = 'news';
$news_single = $class_name::whereid($post_id)->first();
错误:
PostController.php 第 20 行中的 FatalErrorException: 找不到类“新闻”
我该如何解决?
我使用变量作为类名的意图是进行动态查询(有点)。我的意思是我得到 URL 的类名并通过它指定正确的 Model。像这样的:
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'));
}
【问题讨论】:
-
{yes} 但我认为这是个坏主意
-
@nogad 为什么是个坏主意?
-
@stack 任何命名空间到类??
-
@ThunderBird 是的,我已经像
use App\news;一样附加了那个类。正如我在问题中提到的,这有效news::whereid($post_id)->first();。但这不起作用:$class_name::whereid($post_id)->first();