为了账号安全,请及时绑定邮箱和手机立即绑定

将字符串类名转换为laravel中的对象

将字符串类名转换为laravel中的对象

PHP
狐的传说 2022-05-27 14:38:45
我有这个特性,我想使用依赖注入<?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);

    }

}


查看完整回答
反对 回复 2022-05-27
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

我认为您可以将其用作 php 中的字符串

$controllerClassName = 'TODOS\CONTROLLERS\\' . ucfirst($this->_controller) . 'Controller';

这是一个字符串,我用它来创建实例

$controller = new $controllerClassName();


查看完整回答
反对 回复 2022-05-27
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

您可以使用“call_user_func”函数来调用模型中的函数。

public $model = "Payroll";
call_user_func($model . "::index");

希望这会有所帮助。


查看完整回答
反对 回复 2022-05-27
  • 3 回答
  • 0 关注
  • 174 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号