到目前為止我有一個類別模型:class Category extends Model{? ?? ? protected $fillable = [? ? ? ? 'name',? ? ? ? 'slug',? ? ? ? 'order'? ? ];? ? public function scopeParents(Builder $builder){? ? ? ? $builder->whereNull('parent_id');? ? }? ? public function scopeOrder(Builder $builder, $direction = 'asc'){? ? ? ? $builder->orderBy('order', $direction);? ? }? ? public function children(){? ? ? ? $this->hasMany(Category::class, 'parent_id', 'id');? ? }}一個工廠:$factory->define(Category::class, function (Faker $faker) {? ? return [? ? ? ? 'name' => $name = $faker->unique()->name,? ? ? ? 'slug' => Str::slug($name)? ? ];});還有一個測試public function test_it_has_many_children()? ? {? ? ? ? $category = factory(Category::class)->create();? ? ? ? $category->children()->save(? ? ? ? ? ? factory(Category::class)->create()? ? ? ? );? ? ? ? $this->assertInstanceOf(Category::class, $category->children->first());? ? }但是,當我運行測試時,我得到:Call to a member function save() on null? at tests/Unit/Models/Categories/CategoryTest.php:14? ? 10|? ? ?public function test_it_many_children()? ? 11|? ? ?{? ? 12|? ? ? ? ?$category = factory(Category::class)->create();? ? 13|?? > 14|? ? ? ? ?$category->children()->save(? ? 15|? ? ? ? ? ? ?factory(Category::class)->create()? ? 16|? ? ? ? ?);? ? 17|?? ? 18|? ? ? ? ?$this->assertInstanceOf(Category::class, $category->children->first());是什么賦予了?該課程已經有幾年的歷史了,所以我認為 Laravel 版本之間存在一些差異,但這似乎更基本。
1 回答

慕的地6264312
TA貢獻1817條經驗 獲得超6個贊
您的關系方法中缺少返回:
public function children(){ return $this->hasMany(Category::class, 'parent_id', 'id'); }
- 1 回答
- 0 關注
- 111 瀏覽
添加回答
舉報
0/150
提交
取消