Изменить следующее:
->update(Input::all());
к этому (исключить _method
из массива)
->update(Input::except('_method'));
Фактически следующее update
вызывается из класса Illuminate\Database\Eloquent\Builder
, который запускается методом _call
класса Illuminate\Database\Eloquent\Relations
(потому что вы вызываете update
в отношении), и, следовательно, проверка $fillable
не выполняется и вы можете использовать Input::except('_method')
, как я ответил:
public function update(array $values)
{
return $this->query->update($this->addUpdatedAtColumn($values));
}
Если вы прямо вызываете это на модели (не по отношению):
Positions::find($id)->update(Input::all());
Тогда этого не произойдет потому что проверка fillable
будет выполняться внутри Model.php
, потому что после Illuminate\Database\Eloquent\Model
метода будет вызван метод Illuminate\Database\Eloquent\Model
:
public function update(array $attributes = array())
{
if ( ! $this->exists)
{
return $this->newQuery()->update($attributes);
}
return $this->fill($attributes)->save();
}