Создание новой записи с использованием отношения «Один ко многим» в Laravel - PullRequest
0 голосов
/ 06 января 2020

У меня есть пример отношения между двумя моделями, Пользователь и Объявление, как показано ниже.

class Announcement extends Model
{
    //
    protected $guarded = [];

    public function user(){
        return $this->belongsTo(User::class);
    }
}

class User extends Model
{
    //
    protected $guarded = [];

    public function announcements(){
        return $this->hasMany(Announcement::class);
    }
}

В настоящее время я пытаюсь создать новое объявление, используя отношение, но оно выдает ошибку "message": "Call to a member function announcements() on null",

Это текущее состояние моего api из controller

class AnnouncementController extends Controller
{

    public function store(Request $request)
    {
        //

        $record = request()->user()->announcements()->create($this->validateRequest());

        return (new AnnouncementResoure($record))
                    ->response()
                    ->setStatusCode(Response::HTTP_CREATED);
    }

    private function validateRequest()
    {
        return request()->validate([
            'title'=> 'required|Min:3',
            'comment' => 'required'
        ]);
    }


}

Кажется, я не знаю, что может быть причиной ошибки.

1 Ответ

1 голос
/ 06 января 2020

вместо request()->user() замените его на auth('api')->user(); или $request->user('api');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...