Вы сказали, что не можете ничего изменить в самой таблице, но можете ли вы создать нового пользователя, который имеет доступ только для чтения к этой таблице?Если возможно, это будет лучший маршрут.В противном случае вы можете обновить модель, чтобы ограничить эти методы.
Вы можете переопределить методы сохранения и удаления обновления, чтобы вызвать исключение.В вашей модели добавьте:
public function update(array $attributes = [], array $options = [])
{
throw new \Exception('Updates are not allowed');
}
public function save(array $options = [])
{
throw new \Exception('Updates are not allowed');
}
public function delete()
{
throw new \Exception('Deleting is not allowed');
}
Это остановит вас от использования этих методов на экземпляре модели, поэтому выполнение подобных действий приведет к исключению.
$model->update(['attribute' => 'new value']);
$model->delete();
$model->attribute = 'new value';
$model->save();
Это не помешает вам обновить таблицу с помощью построителя запросов. Таким образом, вы все равно можете сделать это:
Foo::where('condition', '=', 'test')->update(['attribute' => 'new value']);
Блокировка для этого потребует от вас создания настраиваемого построителя запросов, который займет много времени.больше усилий.