如何在Laravel 5中全局阻止保存到数据库

时间:2015-08-05 16:33:41

标签: laravel-5 eloquent

我在Laravel中创建了一个PHP脚本,现在我想向我的买家展示demo。由于我不希望他们对数据库进行任何更改,我想知道是否有办法全局禁用对数据库的任何保存?

2 个答案:

答案 0 :(得分:3)

最简单的方法是创建一个没有插入权限的mysql用户。使用以下mysql语句创建用户,并将此用户用作数据库设置中的用户。我不认为在laravel中有一个全球性的方法。

 GRANT SELECT ON [database name].[table name] TO ‘[username]’@'%’;

这样,您的用户就可以查看所有内容,但无法保存。

答案 1 :(得分:3)

如果您有BaseModel,可以在其中添加以下内容:

public static function boot()
{
    parent::boot();

    static::saving(function($model)
    {
        return false;
    }
}

这将截取来自Eloquent的所有creatingupdating事件。

这可能是您的问题的技术答案,但理想情况下只需备份您的数据库并在向买家展示后将其恢复。