Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5 如何在Laravel 5中全局防止保存到数据库_Laravel 5_Eloquent - Fatal编程技术网

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

Laravel 5 如何在Laravel 5中全局防止保存到数据库,laravel-5,eloquent,Laravel 5,Eloquent,我用Laravel制作了一个PHP脚本,现在我想向我的买家展示这个演示。由于我不希望他们对数据库进行任何更改,我想知道是否有一种方法可以全局禁用对数据库的任何保存?最简单的方法是创建一个没有插入权限的mysql用户。使用以下mysql语句创建用户,并将此用户用作数据库设置中的用户。我不认为在拉威尔有一个全局的方法 GRANT SELECT ON [database name].[table name] TO ‘[username]’@'%’; 这样,您的用户可以查看所有内容,但无法保存一点。

我用Laravel制作了一个PHP脚本,现在我想向我的买家展示这个演示。由于我不希望他们对数据库进行任何更改,我想知道是否有一种方法可以全局禁用对数据库的任何保存?

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

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

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

如果您有一个扩展了Laravel默认的Eloquent模型类的
BaseModel
。您的所有应用程序模型都扩展了
BaseModel
,您可以在其中添加以下内容:

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

    static::saving(function($model)
    {
        return false;
    });
}
这将拦截来自Eloquent的任何
创建
更新
事件


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

备份数据库,让他们更改任何内容