SQLSTATE [22P02]:无效的文本表示错误

时间:2018-10-02 09:30:43

标签: php laravel

无法弄清楚为什么我会收到此错误?我正在使用posgres,感觉好像缺少一些重要的链接来解决整个问题? 基本上,我需要将评论链接到ID为

的博客文章
  

SQLSTATE [22P02]:无效的文本表示形式:7错误:无效的输入   整数的语法:“ {blog}”(SQL:从“博客”中选择*,其中“ id” =   {blog}限制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 :(得分:3)

现在,action="/blog/{blog}/comments">将仅返回/blog/{blog}/comments作为操作,因为{blog}未被Blade解析。

为您的路线命名:

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

在您的<form>中,将操作设置为指定的路线(博客评论),并为其指定当前的$blog作为参数:

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

https://laravel.com/docs/5.7/routing#named-routes上了解有关命名路由和参数的更多信息

未经测试! ;)