Laravel 实战开发知乎:实现提交答案
lioonline

请问我这个图片路径为什么会错呢?URL中间会自动加多一个 questions

GET http://wuciyuan.cc/questions/images/avatars/default.jpg 404 (Not Found)
JellyBool

/images/avatar/default.png

lioonline

正式show.blade.php 中的代码

 <div class="media-left">                                     <a href="">                                         <img width="36" src="{{$answer->user->avatar}}"                                              alt="{{$answer->user->name}}">                                     </a>                                 </div>

在浏览器中查看源码

iamge

JellyBool

就是数据库中默认的头像地址你没给对,前面加个斜杠就好

/images/avatar/default.png
lioonline

果然如此,谢谢

laixiaojie

请问一下我提交问题后,返回的状态码是302,而不是200,导致生成数据不能成功

Route::post('questions/{question}/answer','AnswersController@store');

还有表单也是定义好了post,不知道是什么情况

Request URL:http://localhost:8000/questions/3/answer
Request Method:POST
Status Code:302 Found
Remote Address:127.0.0.1:8000

已解决,注入错误

hard88

你好,SQLSTATE[HY000]: General error: 1364 Field 'question_id' doesn't have a default value (SQL: insert into answers
我的代码部分:

 public function store(Request $request,$question)
        {
            $answer=$this->answer->create([
                'question_id'=>$question,
                'user_id'=>Auth::id(),
                'body'=>$request->get('body')
            ]);
            $answer->question()->increment('answers_count');
            return back();
        }

之前dd也是有值得,却说值没有传进来。。

dd($question);
也是传过来的

hard88

更新一下问题,SQLSTATE[HY000]: General error: 1364 Field 'question_id' doesn't have a default value (SQL: insert into answers (user_id, body, updated_at, created_at) values (6,

23

, 2017-03-01 15:06:25, 2017-03-01 15:06:25))

但是比如我的url为http://localhost:8000/questions/12,我dd一下,结果是"12",$question是有值得啊

JellyBool

仔细看一下吧。。。相信报错信息

你确定触发的是 http://localhost:8000/questions/12

hard88

额,已经弄了一个下午,'question_id'的值就是存储不到数据库中。关于migration,我已经看了上一个视频,一 一对照了并且重新生成了一遍,数据库也重启了,fillable里面的值确认了,google后把config / database.php文件的连接设置'strict'=> false。我dd($request->all(),$question)可以收到$question的值,'question_id' => $question,一直有问题。

如果是站长,会再往哪去看,会是原因呢?已经抓狂了。。。。麻烦了

JellyBool

fillable 看一下呗

hard88

站长可以贴一下show.blade.php的代码么,当我提交答案后,“x个答案”这里样式改变了,增添了a标签,同时下划线的样式也没有了,有对照视频中的样式,这种问题这两天一直出。。。

JellyBool

这种你直接自己定一下 css 的样式就好了吧

hard88

没事,解决了==

hwlweb

$answer->question()->increment('answers_count');

Missing argument 1 for Symfony\Component\Console\Question\Question::__construct(), called in /Users/hwl/work/phps/zhihu-app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php on line 487 and defined

改answers_count时报错了,看不出是哪里出问题了

JellyBool

检查一下你的 命名空间有没有写对:

Symfony\Component\Console\Question\Question::__construct(),

不应该有这个的

hwlweb

use Question時錯了,哎,該死的phpStorm自動补全,心都碎了。。。。

JellyBool

稍微注意一下就行