繁体   English   中英

Laravel和批量分配保护

[英]Laravel and Mass Assignment Protection

Laravel (5) 的批量赋值保护有一些不清楚的地方。 该保护声称默认情况下处于启用状态,仅当我在应用程序“外部”时才有效,例如来自自定义 artisan 命令。 当从自定义 artisan 命令运行时,从“php 应用程序”运行的相同质量分配代码将因质量分配异常而失败。 这是为什么? 任何地方都没有记录这种差异。

为什么“应用程序”和 php 工匠“命令”之间存在安全差异?

有没有办法让 artisan 命令在不更改fillableguarded的情况下与批量分配一起工作?

您可以使用unguard命令来处理可填充数组的添加属性。

Model::unguard();

// User::create(['some_protected_attribute'=>'some value']);

Model::reguard();

AppserviceProvider.php的引导方法中Add Model::unguard()以全局禁用批量分配保护。

<?php 
namespace App\Providers;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\ServiceProvider;


class AppServiceProvider extends ServiceProvider
{
 /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot(){
     
        Model::unguard();
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM