我有复合主键,所以Laravel的save()方法无法工作。因此我需要重写save方法。例如,我的主键是一个由column_a和column_b组成的组合键。你能给我举例说明如何覆盖保存方法以及我放置的位置?Laravel 5 Override Eloquent保存方法
我的主键:column_a,column_b
我已经试过如下:
protected function setKeysForSaveQuery(Builder $query)
{
parent::setKeysForSaveQuery($query);
$query->where('locale', '=', $this->locale);
return $query;
}
我发现上面的代码,但它会导致500内部服务器错误甚至我打电话,仅读取值的方法从数据库。我已经将$ primaryKey ='column_a'和'locale'(在where里面)设置为column_b。我不知道$ this-> locale指的是什么?
这里是另一种方式,我发现,但它没有太
protected $secondaryKey = 'column_b';
function newQuery()
{
$query = parent::newQuery();
$query->where($this->secondaryKey, '=', $this->type);
return $query;
}
同样,我不知道什么是$这个 - >型指。
你可以给我的例子吗?我不知道如何从where子句中删除id并在查询中添加多个where子句(其他列) – OrgGila
我不明白你的意思是什么,但由于这是一个新问题,我建议你创建新的回答并描述所有内容(使用代码,你想要什么,你已经尝试了什么)。我相信我或其他人会帮助你。 –
我刚刚包括我试过的东西。 – OrgGila