Laravel eloquent javascript 中的关系问题

Laravel eloquent relationship issue in javascript

这是我的网站模型

  class Website extends Model
{
    protected $table = 'website';

   public function links()
   {
    return $this->hasMany('App\Website_links')->where('crawler_status',1);
   }

}

和控制器代码

 if(Request::ajax()){

        $validator = Validator::make(Request::all(), [
            'page' => 'required',
        ]);
        if($validator->fails()){
            return Response::json(['success'=>false,'error'=>$validator->errors()->toArray()]);
        }

        $page = Request::get('page');
        $websites_data = Website::where('user_id',Auth::id())->skip(3*($page-1))->take(3)->get();
        return Response::json(['success'=>true,'success_data'=>$websites_data]);
    }

和javascrpit代码

$(result.success_data).each(function( index,el) {
                console.log(el.project_name,el.website_url,el.links);
            });

这里我在 el.links 上未定义。 在我的 html 中,我正在像这样完美

@foreach($data as $website)
                    <tr>
                        <td>{{$website['project_name']}}
                        </td>
                        <td><a href="{{$website['website_url']}}">{{$website['website_url']}}</a></td>
                        <td>{{count($website->links)}}</td></tr>
@endforeach

我想在 javascript 中计算 el.links 就像我在 html.in 中所做的那样 javascript 前两个值 project_name 和 website_url 是完美来了。

您必须加载关系才能将其包含在 JSON 输出中。

急于加载....

$websites_data = Website::with('links')->where('user_id',Auth::id())->skip(3*($page-1))->take(3)->get();

或延迟加载它

$websites_data = Website::where('user_id',Auth::id())->skip(3*($page-1))->take(3)->get();
$websites_data->load('links');

使用

var obj = JSON.parse(el);
console.log(obj.project_name,obj.website,el.links)