【问题标题】:Disable mass assignment protection for all models across all tests在所有测试中禁用所有模型的质量分配保护
【发布时间】:2019-09-13 14:32:06
【问题描述】:

有没有办法在所有测试中为所有模型禁用批量分配保护,而不必一遍又一遍地重复此操作?
FooTest

Foo::unguard();
Bar::unguard();
Baz::unguard();
Foo::create(['column' => 'value']);
Bar::create(['column' => 'value']);
Baz::create(['column' => 'value']);

BarTest

Foo::unguard();
Bar::unguard();
Baz::unguard();
Foo::create(['column' => 'value']);
Bar::create(['column' => 'value']);
Baz::create(['column' => 'value']);

BazTest

Foo::unguard();
Bar::unguard();
Baz::unguard();
Foo::create(['column' => 'value']);
Bar::create(['column' => 'value']);
Baz::create(['column' => 'value']);

【问题讨论】:

    标签: laravel mass-assignment


    【解决方案1】:

    我使用 TestCase 每个测试类扩展,Eloquen\Model 每个模型扩展。
    tests/TestCase.php

    <?php
    
    namespace Tests;
    
    use Illuminate\Database\Eloquent\Model;
    use Illuminate\Foundation\Testing\DatabaseMigrations;
    use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
    
    abstract class TestCase extends BaseTestCase
    {
        use CreatesApplication, DatabaseMigrations;
    
        public function setUp(): void
        {
            parent::setUp();
            Model::unguard();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-07
      • 1970-01-01
      • 2017-03-19
      • 2017-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多