在方法参数中传递模型实例

时间:2018-09-21 15:13:24

标签: php laravel

我试图为模型创建一个通用类,将模型实例传递给我的单独参数

class Custom
{

    private $model;

    public function getAll(){

        return $this->model->get();
    }

    public function  setModel(Model $model){

        $this->model=$model;

    }
}

我和我的控制器有

  $customModel=new Custom();
        $customModel->setModel(Branch::class);

        echo "<pre>";
        print_r($customModel->getAll());

我也尝试过

$response=$this->customDatatable->setModel(Branch::class)->getAll();
        echo "<pre>";
        print_r($response->toArray());

但是出现以下错误

  

传递给App \ Helpers \ Custom :: setModel()的参数1必须是   Illuminate \ Database \ Eloquent \ Model的实例,给出的字符串称为

1 个答案:

答案 0 :(得分:2)

var voidTaskResult = Type.GetType("System.Threading.Tasks.VoidTaskResult"); if (taskType.IsGenericType && taskType.GetGenericTypeDefinition() == typeof(Task<>) && taskType.GetGenericArguments()[0] != voidTaskResult) { var result = task.GetType().GetProperty("Result").GetValue(task); Console.WriteLine(result); } 是一个class constant,它按照错误消息的建议以字符串形式返回类名称。也许您正想通过Branch::class