首页 > 解决方案 > 在方法参数中传递模型实例

问题描述

我正在尝试为模型创建一个公共类,其中我将模型实例传递给我的单独参数

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 的实例,给定字符串,调用

标签: phplaravel

解决方案


Branch::class是一个类常量,它以字符串形式返回类名,如错误消息所示。也许您希望通过new Branch


推荐阅读