Class 如何使用Laravel 5中的变量名获取模型对象?

Class 如何使用Laravel 5中的变量名获取模型对象?,class,object,model,laravel-5,Class,Object,Model,Laravel 5,我正试图从一个使用其名称的模型中获取信息,该名称作为参数通过ajax调用从blade发送 $.get("{{ url('auditInformation')}}", {modelName: modelName,versions:versions,currentData:currentData[index]}); 现在我需要使用modelName从模型中检索信息 所以当我尝试这个: $auditInfo=Input::all(); $modelName=$auditInfo['model

我正试图从一个使用其名称的模型中获取信息,该名称作为参数通过ajax调用从blade发送

$.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


谢谢

如果您想这样做,应该使用模型的名称空间

例如,如果“Destination”模型的命名空间为app\Destination,则应如下使用:

$auditInfo=Input::all();
$appPrefix = 'app';
$modelName=$appPrefix . '\' . $auditInfo['modelName'];
$values=$modelName::find(1);

如果要这样做,应该使用模型的名称空间

例如,如果“Destination”模型的命名空间为app\Destination,则应如下使用:

$auditInfo=Input::all();
$appPrefix = 'app';
$modelName=$appPrefix . '\' . $auditInfo['modelName'];
$values=$modelName::find(1);

这似乎奏效了

$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();

这似乎奏效了

$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();

单引号之间的单反斜杠被视为转义序列,因此使用双反斜杠是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

单引号之间的单反斜杠被视为转义序列,因此使用双反斜杠是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

我认为您需要像这样避开反斜杠:$modelName=$appPrefix.\\'$auditInfo['modelName'];我认为您需要像这样避开反斜杠:$modelName=$appPrefix.\\'$auditInfo['modelName'];