У вас есть $fillable
и $guarded
для защиты от массового задания. Но как я могу защитить определенные db-столбцы, чтобы их невозможно было обновить?Можно ли хранить столбцы для обновлений только в Laravel 4?
1
A
ответ
1
Вы можете переопределить isFillable()
в своей модели и использовать свойство exists
, чтобы определить, находится ли модель в базе данных или нет (если вы создаете или обновляете). Также вам понадобится другое свойство для настройки этих атрибутов. Давайте назовем это $guardedForUpdate
:
protected $guarded = ['foo'];
protected $guardedForUpdate = ['bar'];
public function isGuardedForUpdate($key){
return in_array($key, $this->guardedForUpdate) || $this->guardedForUpdate == array('*');
}
public function isFillable($key){
if($this->exists && $this->isGuardedForUpdate($key)){
return false;
}
return parent::isFillable($key);
}
foo
еще не будет масса назначается в любом случае. В то время как bar
можно назначать массе при создании новой модели, но не при ее обновлении.
+0
Выглядит очень многообещающе. Я дам ему попробовать! – MikaelL
Смежные вопросы
- 1. Laravel 4 хранить временные данные
- 2. Laravel 4 - Можно ли расширить класс DB?
- 3. Где хранить изображения в Laravel 4 Просмотров
- 4. хранить переменные в пользовательской модели laravel 4
- 5. Можно ли хранить только armeabi-v7a для андроида apk
- 6. Laravel 4 - @ whatever.com только
- 7. Можно ли хранить итератор?
- 8. Можно ли вернуть новую ревизию в ответ для обработчика обновлений?
- 9. Laravel 4 tokenmismatch только для Chrome
- 10. Laravel 4 - NotFoundHttpException только для новых маршрутов
- 11. Можно ли создавать только для 4-дюймовых дисплеев iPhone?
- 12. Можно ли комбинировать одноразовые нагрузки в Laravel 4?
- 13. Laravel 4 Routing - Можно ли назвать контроллер в группе маршрутов?
- 14. Laravel принадлежитTMMany, чтобы возвращать только определенные столбцы
- 15. Можно ли использовать Laravel только для системы входа/аутентификации?
- 16. Можно ли хранить только контрольную сумму большого файла в git?
- 17. Можно ли хранить пароли, которые можно получить?
- 18. Laravel 4: Можно ли повторно использовать файл миграции?
- 19. Можно ли скрыть некоторые столбцы в QTreeView?
- 20. Можно ли хранить непостоянную логику в хранилище
- 21. Можно ли хранить небольшой объект в сеансе?
- 22. Где можно разместить классы фильтра laravel 4?
- 23. Можно ли хранить массивы в профиле ASP.NET?
- 24. mysql SELECT только для обновлений
- 25. Rails 4 Коллекция обновлений для текущего пользователя
- 26. Можно ли хранить javascript-массив в json?
- 27. Можно ли хранить (хэшированные) пароли в cookie?
- 28. Есть ли эквивалент python для Laravel 4?
- 29. laravel 4 - как включить редактор в Laravel 4
- 30. Laravel 4/Красноречивый ORM: Можно ли получить объект за отношением?
Невозможно обновить их только с помощью массового присвоения или путем установки их непосредственно? ('$ model-> foo = 'bar'') – lukasgeiter
Конечно, это было бы решение вручную установить, какие поля обновлять в контроллере. Было бы хорошо, если бы был способ для массового назначения. – MikaelL
Нет. Я спрашиваю, должно ли быть установлено вручную. Другими словами, следует ли защищать только для массового присвоения или для всех возможных способов установки атрибута модели? – lukasgeiter