SQLSTATE [22P02]: недопустимая ошибка представления текста - PullRequest
0 голосов
/ 02 октября 2018

Не можете понять, почему я получаю эту ошибку?Я использую posgres, я чувствую, что мне не хватает какой-то важной ссылки, чтобы понять все это?В основном мне нужно связать комментарий к сообщению в блоге с идентификатором

SQLSTATE [22P02]: недопустимое текстовое представление: 7 ОШИБКА: неверный синтаксис ввода для целого числа: "{блог}" (SQL: выбрать* из "блогов", где "id" = {blog} limit 1)

Контроллер комментариев

use App\Blog;
use App\Comment;

class CommentsController extends Controller
{
    // add store method
    public function store(Blog $blog)
    {
        Comment::create([
            'body'=> request('body'),
            'blog_id' => $blog->id
        ]);

        return back();
    }
}

web.php

Route::post('blog/{blog}/comments', 'CommentsController@store');

форма головы с запросом:

<form method="POST" action="/blog/{blog}/comments">

1 Ответ

0 голосов
/ 02 октября 2018

Как у вас сейчас, action="/blog/{blog}/comments"> вернет просто /blog/{blog}/comments как действие, поскольку {blog} не анализируется Blade.

Дайте вашему маршруту имя:

Route::post('blog/{blog}/comments', 'CommentsController@store')->name('blogcomments');

В вашем <form> установите действие для именованного маршрута (blogcomments), задав ему текущий $blog в качестве параметра:

<form method="POST" action="{{ route('blogcomments', ['blog' => $blog] }}">

Подробнее об именованных маршрутах и ​​параметрах можно узнать по адресу https://laravel.com/docs/5.7/routing#named-routes

Не тестировалось!;)

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