我有一个非常基本的功能来删除Laravel 4.x上一个简单的网站上的东西,其工作原理如下:
public function delete()
{
...
$Model = Input::get('Model');
$Action = $Model::find($Id);
...
}
Run Code Online (Sandbox Code Playgroud)
现在在Laravel 5上,我正在尝试做同样的事情但到目前为止我不能因为命名空间.由于$ Model是动态的,我不想做use任何事情.
这样的事情:
use App\C\Models as Model;
public function delete()
{
...
$Action = Model\$Model::find($Id);
...
}
Run Code Online (Sandbox Code Playgroud)
简单不行.什么是让这个工作的正确方法?
只需将命名空间的类名首先存储为字符串:
$Model = Input::get('Model');
$NamespacedModel = '\\Model\\' . $Model;
$Action = $NamespacedModel::find($Id);
Run Code Online (Sandbox Code Playgroud)