这是我的网站模型
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,就像我在 JavaScript 中所做的那样 html.in 前两个值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)