簡體   English   中英

Laravel 5 - 命名空間 + 動態模型

[英]Laravel 5 - Namespace + Dynamic Model

我有一個非常基本的功能來刪除 Laravel 4.x 上一個簡單網站上的內容,其工作方式如下:

public function delete()
{
    ...
    $Model = Input::get('Model');       
    $Action = $Model::find($Id);
   ...
}

現在在 Laravel 5 上,我正在嘗試做同樣的事情,但到目前為止我不能,因為命名空間。 由於 $Model 是動態的,我不想對所有內容都use

和這樣的事情:

use App\C\Models as Model;

public function delete()
{
...
$Action = Model\$Model::find($Id);
...
}

簡單行不通。 讓這個工作的正確方法是什么?

首先將命名空間類名存儲為字符串:

$Model = Input::get('Model');
$NamespacedModel = '\\Model\\' . $Model;
$Action = $NamespacedModel::find($Id);

同樣的情況,我的代碼是這樣的......

public function FunctionName(Request $request)
{
    $modelName = $request->model;

    $model = '\\App\\Models\\'.$modelName;

    $q = $model::find($request->id);

    $q->someColumn = 'someValue';

    $q->save();

    return back();
}

注意:我使用的是 Laravel 8

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM