3

通常,如果您想通过 id(主键)查找一行,您只需执行以下操作:

$user = User::find(1);

相同的where

$result = User::where('votes', '>', 100);

不幸的是我不能使用这个静态调用,因为我在模型中有一个构造函数:

class PurchasesModel extends Eloquent
{
    public function __construct($connection) {
        parent::__construct();
        $this->connection = $connection;
        $this->table = 'purchases';
    }
}

我搜索了整个文档,但只有静态调用。

我怎样才能做到这一点?

$purchases = new PurchasesModel($this->connection);
$purchases->where('status', 'active');
$purchases->get();

似乎没有工作。

谢谢

4

1 回答 1

0

当重复使用相同的变量进行查询时,您需要重新分配变量以使更改生效。所以你最终会得到这样的东西。

$purchases = new PurchasesModel($this->connection);
$purchases = $purchases->where('status', 'active');
$purchases = $purchases->get();

老实说,我只是这样做。

$purchases = new PurchasesModel($this->connection);
$purchases = $purchases->where('status', 'active')->get();

但幸运的是,您已经可以使用不同的连接开始 Eloquent 查询。

$purchases = PurchasesModel::on($this->connection)->where('status', 'active')->get();

在与@Michael 聊天后,我们认为这是重载 Eloquent 构造函数的问题。因为 Eloquent 会在几个地方实例化自己(静态调用 find、with 等),这使得 Eloquent 很难,因为它假定第一个参数将是模型的可选属性数组。

于 2013-07-12T05:53:19.437 回答