Понять ключевое слово return в этом контексте - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть этот код для создания записи, но я не понимаю, почему ключевое слово return типа "return $request->uploadImage()->storePost();" необходимо для отображения объекта записи с использованием метода show() с "dd(Posst::find($id));". Потому что без возврата, используя только «$request->uploadImage()->storePost();», вы увидите пустую страницу, а не объект post. Знаете ли вы, почему возврат необходим в этом контексте?

Также в классе PostRequest есть эта часть для установки свойства file_name объекта PostRequest:

    $this->file_name = str_slug($this->title). '.' . $uploadedImage->getClientOriginalExtension();

Но у класса PostRequest свойство file_name не объявлено, но оно работает, поэтому можно задавать свойства объекта без предварительного их объявления?

В PostController:

public function store(CreatePostRequest $request)
{
    return $request->uploadImage()->storePost();
}

 public function show($id)
    {
        dd(Post::find($id));
    }

В CreatePostRequest есть два метода:

public function uploadImage(){
    $uploadedImage = $this->image;
    $this->file_name = str_slug($this->title). '.' . $uploadedImage->getClientOriginalExtension();
    $uploadedImage->storePubliclyAs('post', $this->file_name);
    return $this;
}

public function storePost(){
    $post = Post::create([
        'title' => $this->title,
        'content' => $this->content,
        'image_url' => 'posts/' . $this->file_name,
    ]);

    session()->flash('success', 'Post created');

    return redirect()->route('post.show', $post->id);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...