我有這個特性,我想使用依賴注入<?php namespace App\Http\Controllers\Admin; trait ControllerTrait{public function index($this->model $payroll){ return $this->model->paginate(20); } }使用此特征的控制器namespace App\Http\Controllers\Admin;use Illuminate\Http\Request;use App\Http\Controllers\Controller;use App\Payroll;class PayrollController extends Controller{ use ControllerTrait; public $model = "Payroll"; }$model 現在是一個字符串,如何在調用特征的索引方法時將其轉換為對象
3 回答

蕭十郎
TA貢獻1815條經驗 獲得超13個贊
我不相信動態類型提示是可能的,在這種情況下也沒有必要。
我想這就是你要找的。
namespace App\Http\Controllers\Admin;
trait ControllerTrait{
public function index() {
return ('\App\\'.$this->model)::paginate(20);
}
}

海綿寶寶撒
TA貢獻1809條經驗 獲得超8個贊
我認為您可以將其用作 php 中的字符串
$controllerClassName = 'TODOS\CONTROLLERS\\' . ucfirst($this->_controller) . 'Controller';
這是一個字符串,我用它來創建實例
$controller = new $controllerClassName();

慕姐4208626
TA貢獻1852條經驗 獲得超7個贊
您可以使用“call_user_func”函數來調用模型中的函數。
public $model = "Payroll"; call_user_func($model . "::index");
希望這會有所幫助。
- 3 回答
- 0 關注
- 166 瀏覽
添加回答
舉報
0/150
提交
取消