Sveicināti!
Mana problēma bija izdzēst ierakstu no Eloquent (lasīt: tabulas), kurā nav ID kolonnas, bet tā vietā 3 PK kolonnas. Papildus nosacījums: jāizpildās Laravel Eloquent deleting/deleted eventiem.
Šādi rakstot nenostrādā event'i:
Model::where('x', $x)->where('y', $y)->where('z', $z)->delete();
Mans risinājums šai problēmai:
Model.php fails.
protected $primaryKey = ['x', 'y', 'z'];
protected $incrementing = false;
/**
* Set the keys for a save update query.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
*/
protected function setKeysForSaveQuery(Builder $query)
{
if (is_array($this->primaryKey)) {
foreach ($this->primaryKey as $key) {
$query->where($key, '=', $this->original[$key]);
}
return $query;
}
return parent::setKeysForSaveQuery($query);
}
Dzēšanas izsaukšana:
$item = Model::where('x', $x)->where('y', $y)->where('z', $z)->first();
$item->delete();
Kādi ir jūsu risinājumi? Varbūt jums ir kāds daudz labāks risinājums, ko neesmu atradis? :)
Paldies.