Laravel 错误: 在 null 上调用成员函数 create()

我需要你的帮助。我正在学习Laravel,我知道它已经被问过很多次了,但不能让它起作用。


我正在尝试使用 .page_id


我在 CategoryController 中的方法如下所示:store


public function store(Page $page){


    $data = request()->validate([

        'title' => 'required'

    ]);


    $category = $page->categories()->create($data);


    return redirect('/category/' . $category->id);

}

我的主页如下所示:model


<?php


namespace App;


use Illuminate\Database\Eloquent\Model;


class Page extends Model

{

    protected $guarded = [];


    public function categories() {

        $this->hasMany(Category::class);

    }

}


我的类别如下所示:migration


 public function up()

   {

        Schema::create('categories', function (Blueprint $table) {

            $table->bigIncrements('id');

            $table->unsignedBigInteger('page_id');

            $table->string('title');

            $table->timestamps();

        });

   }


我想先了解我做错了什么。


繁华开满天机
浏览 69回答 1
1回答

米脂

您的类别关系必须返回 hasMany 对象。将代码更改为:<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class Page extends Model{&nbsp; &nbsp; protected $guarded = [];&nbsp; &nbsp; public function categories() {&nbsp; &nbsp; &nbsp; &nbsp; return $this->hasMany(Category::class);&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP