@Speakermen

Для чего нужны методы create, edit?

Доброго времени суток уважаемые программисты подскажите пожалуйста кодеру. Для чего нужны методы create, edit? Если они не используются в route:list там только

question.index
question.store
question.show
question.update
question.destroy

И не могу понять почему выдает ошибку "message": "No query results for model [App\\Models\\Question] 20" в постмэне при запросе GET app.local/api/question/20 где такого id нет а не 404 page или так должно быть?
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
use App\Models\Question;
use App\Http\Resources\QuestionResource;

class QuestionController extends Controller
{
    public function index()
    {
        return QuestionResource::collection(Question::latest()->get());
    }

    public function create()
    {
        //
    }

    public function store(Request $request)
    {
        Question::create($request->all());
        return response('create', Response::HTTP_CREATED);
    }

    public function show(Question $question)
    {
        return new QuestionResource($question);
    }

    public function edit(Question $question)
    {
        //
    }

    public function update(Request $request, Question $question)
    {
        $question->update([
            'title' => $request->title,
            'slug' => $request->slug,
            'body' => $request->body
        ]);

        return response('Update', Response::HTTP_ACCEPTED);
    }

    public function destroy(Question $question)
    {
        $question->replies()->delete();
        $question->delete();

        return response('Delete', Response::HTTP_NO_CONTENT);
    }
}

<?php

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\JsonResource;

class QuestionResource extends JsonResource
{
    public function toArray($request)
    {
        return [
            'id' => $this->id,
            'title' => $this->title,
            'slug' => $this->slug,
            'body' => $this->body,
            'created_at' => $this->created_at->diffForHumans(),
            'user' => $this->user->name,
        ];
    }
}
  • Вопрос задан
  • 120 просмотров
Решения вопроса 2
Sanes
@Sanes
Формы создания и редактирования.
Ответ написан
@jazzus
В данном случае вместо ресурсного контроллера нужно юзать апи контроллер/роуты Там методов/роутов create edit не будет.

No query results for model

Это расшифровка ошибки с кодом 404.

Здесь
'user' => $this->user->name,
будет 1000 запросов в бд на каждую 1000 вопросов в коллекции. Чтобы этого не было нужно цеплять юзера с помощью with
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы