通常,如果你想通过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();
似乎不起作用。
由于
答案 0 :(得分: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很难,因为它假设第一个参数将成为模型的可选属性数组。