gpt4 book ai didi

laravel - 无法实例化抽象类 Illuminate\Database\Eloquent\Model - Laravel 4

转载 作者:行者123 更新时间:2023-12-04 18:05:10 27 4
gpt4 key购买 nike

我正在尝试提取 Eloquent 查询的构建,因为我想在许多不同的模型中重用此代码。在 Controller 中,我有:

$inputs = Input::all();
$user = new Eloquent;
$result = Helpers::buildQuery($user, $inputs);

Helpers 类:

<?php namespace ArgumentClub;

class Helpers {

public static function buildQuery(Eloquent $model, $inputs)
{
$limit = isset($inputs['limit']) ? $inputs['limit'] : 10;
$offset = isset($inputs['offset']) ? $inputs['offset'] : 0;
list($orderCol, $orderBy) = isset($inputs['order']) ? explode(",", $inputs['order']) : explode(",", 'created_at,DESC');

$result = $model
->orderBy($orderCol, $orderBy)
->skip($offset)
->take($limit)
->get();

return $result;
}
}

那么,我如何传入模型并让它查询该模型,返回 Eloquent 集合?

最佳答案

Eloquent(Illuminate\Database\Eloquent\Model 的别名)是一个抽象类。你不能实例化它。相反,您必须这样做:

$inputs = Input::all();
$user = new User;
$result = Helpers::buildQuery($user, $inputs);

类型限制 buildQuery(Eloquent $model, $inputs) 仍然可以正常工作,因为 User 扩展了 Eloquent 并且因此被方法。


一点旁注,您可能还想考虑创建一个基础模型来扩展 Eloquent 并在所有模型之间共享功能。

关于laravel - 无法实例化抽象类 Illuminate\Database\Eloquent\Model - Laravel 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28453894/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com