Laravel Ошибка: вызов функции-члена create () в null - PullRequest
0 голосов
/ 23 января 2020

Мне нужна твоя помощь. Я учу Laravel и знаю, что его спрашивали много раз, но не могу заставить его работать.

Я пытаюсь сохранить категорию с page_id.

Мой store метод в CategoryController выглядит так:

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);
    }
}

My категория migration выглядит следующим образом:

 public function up()
   {
        Schema::create('categories', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->unsignedBigInteger('page_id');
            $table->string('title');
            $table->timestamps();
        });
   }

Я хотел бы сначала понять, что я делаю неправильно .

Спасибо, ура

1 Ответ

2 голосов
/ 23 января 2020

Ваше отношение категорий должно возвращать объект hasMany. изменить код на это:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Page extends Model
{
    protected $guarded = [];

    public function categories() {
        return $this->hasMany(Category::class);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...