laravel api返回null

时间:2018-05-27 12:21:43

标签: mysql laravel api

我有api返回我的数据。我有条件,如果可见== 1然后返回数据,否则不返回任何东西。

但我收到的是这个

{
    "data": [null, {
        "order": 2,
        "path": "http:\/\/controlpanel.test\/uploads\/7bb61115dd77823d8e8e3f2b6afa401b.png",
        "visible": 1
    }]
}

我希望这是回归

{
    "data": [{
        "order": 2,
        "path": "http:\/\/controlpanel.test\/uploads\/7bb61115dd77823d8e8e3f2b6afa401b.png",
        "visible": 1
    }]
}

没有null。 这是我的代码

if($this->visible==1){
        return [

            'order' =>$this->order,
            'path' => asset('uploads').'/' . $this->path,
            'visible'=> $this->visible,
        ];
    }

2 个答案:

答案 0 :(得分:0)

您需要在评论模型中为post()关系定义FK,例如

public function post(){
    return $this->belongsTo('App\Posts' , 'post_id');
}

使用App\Posts名称约定laravel正在寻找posts_id而不是post_id

将您的帖子模型更新为

public function comments(){

    return $this->hasMany('App\Comment', 'post_id');

}

答案 1 :(得分:0)

你有Posts模型,所以在关系中,它搜索table属性中的posts_id。 您可以使用以下任一方法解决问题

  1. 更新评论模块

    public function post(){ return $this->belongsTo(Posts::class , 'post_id'); }

  2. 更新型号名称

  3. from Posts to Post