我正在尝试使用其名称从模型中获取信息,该名称是使用ajax调用从刀片发送的参数。
$.get("{{ url('auditInformation')}}", {modelName: modelName,versions:versions,currentData:currentData[index]});
现在我需要从模型中使用 modelName 检索信息。
所以当我尝试这个时:
$auditInfo=Input::all();
$modelName=$auditInfo['modelName'];
$values=$modelName::find(1);
我收到此回复 未找到“指定”类别
但如果我使用
$modelName=new Designation();
$values=$modelName::find(1);
然后它显示了我想要的数据。
所以我理解这完全是关于模型(类)对象。
有没有办法使用 $ auditInfo ['modelName'] 将对象分配给 $ modelName 。
由于
答案 0 :(得分:2)
如果你想这样做,你应该使用模型的命名空间。
例如,如果'目的地' model的名称空间是app \ Destination,你应该这样使用:
$auditInfo=Input::all();
$appPrefix = 'app';
$modelName=$appPrefix . '\' . $auditInfo['modelName'];
$values=$modelName::find(1);
答案 1 :(得分:1)
单引号之间的单反斜杠被视为转义序列,因此使用双反斜杠是100%的工作。例如
public function index(Request $request) {
$model_prefix="App\Models";
$modal = $model_prefix.'\\'.$request->type;
$modal::updateOrcreate(['users_id'=>session("user")->users_id],$request->all())->save();
dd(Profile::all());
}
//Laravel 7.0
答案 2 :(得分:0)
这似乎可行
$table_name = "App\Models\PeopleYouMayLikeModel";
$obj = $table_name::where($column_name_identifier_1, '=', $row_identifier_1)
->where($column_name_identifier_2, '=', $row_identifier_2)->first();