简体   繁体   English

JavaScript中的Laravel雄辩的关系问题

[英]Laravel eloquent relationship issue in javascript

this is my website model 这是我的网站模型

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

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

}

and controller code 和控制器代码

 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]);
    }

and javascrpit code 和javascrpit代码

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

here i am getting undefined on el.links. 在这里,我在el.links上变得不确定。 in my html i am getting it perfect like this 在我的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

i want to count el.links in javascript like i have done in html.in javascript first two values project_name and website_url is coming perfectly. 我想计算javascript中的el.links就像我在html.in javascript中所做的一样,前两个值project_name和website_url非常完美。

You have to load the relationship to get it included in the JSON output. 您必须加载关系以使其包含在JSON输出中。

Eager load it.... 渴望加载它。

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

or lazy load it 或延迟加载

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

use 采用

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM