vd/app/Models/HasCompositePrimaryKey.php
2018-12-25 15:08:11 +08:00

39 lines
852 B
PHP

<?php
namespace App\Models;
use Exception;
use Illuminate\Database\Eloquent\Builder;
trait HasCompositePrimaryKey
{
/**
* Get the value indicating whether the IDs are incrementing.
*
* @return bool
*/
public function getIncrementing()
{
return 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)
{
foreach ($this->getKeyName() as $key) {
if ($this->$key) {
$query->where($key, '=', $this->$key);
} else {
throw new Exception(__METHOD__ . 'Missing part of the primary key: ' . $key);
}
}
return $query;
}
}