当给定字符串模型时,Laravel Eloquent发现不工作

时间:2017-08-04 05:35:06

标签: php laravel eloquent

我将Laravel中的模型存储在变量中作为String。

$model = "App\Models\City";

我想要的是

$model::find(1) to fetch the City with ID of 1

但它没有像预期的那样发挥作用。但是,当我做的时候

City::find(1)

不使用$ model变量。我可以取得预期的结果。

任何?

3 个答案:

答案 0 :(得分:4)

您可以从service container

中解析该课程
$model = app("App\Models\City");
$model::find(1);

答案 1 :(得分:3)

您可以使用此功能,您可以参考How can I call a static method on a variable class?了解更多信息。

$city = call_user_func($class . '::find', 1);

答案 2 :(得分:3)

您可以使用call_user_func

试试这个:

$model = "App\Models\City";
$id =1
$city = call_user_func(array($model, 'find'), $id);