duanlu7680 2016-12-14 21:05
浏览 74
已采纳

SQL错误:通过表单发送空字符串

I am using Bootforms to edit posts on a blog

<?php $formOptions = [
        'url' => 'user',
        'sm' => [2, 5],
        'lg' => [2, 5],
        'method'=> 'put'
    ]; ?>

    {!! BootForm::openHorizontal($formOptions)->action(route('news.update', $post)) !!}
    <input type="hidden" name="_method" value="PUT">
    {!! BootForm::text('Titre', $post->title) !!}
    {!! BootForm::text('Slug', $post->slug) !!}
    {!! BootForm::textarea('Contenu', $post->content) !!}
    {!! BootForm::submit('Editer') !!}
    {!! BootForm::close() !!}

Here is my PostController function once I update my post :

 public function update($id, Request $request)
{
    $post = Post::findorFail($id);

    $title = $request->input('title');

    $post->title = $title;
    $post->content = $request->input('Contenu');

    $request->has('save');

    $post->save();
    return redirect(route('news.index'));
}

But once I edit my post, I encouter this error like i am sending empty strings : SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'title' cannot be null (SQL: update posts set title = , content = , updated_at = 2016-12-14 20:48:25 where id = 3)

If you see where is the problem, I could use some help ...

  • 写回答

2条回答 默认 最新

  • douke6881 2016-12-14 21:13
    关注

    It looks like you use invalid parameters in forms. If you want use default values, you should make it as in example from github:

    https://github.com/adamwathan/bootforms

    BootForm::text('Titre', 'title')->defaultValue($post->title);
    

    Now you use $post->title as field name, so $_POST['title'] is just empty.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。