简体   繁体   English

将嵌套数组从控制器传递到laravel中的视图

[英]passing nested array from controller to view in laravel

I'm new to laravel and I tried to clear the problem from here 我是laravel的新手,我试图从这里解决问题

I have controller like the following: 我有如下控制器:

foreach($users as $user){
    $message[] = Model::where('id',$user->id)->get();
}
$data['tests'] = $message;
return View::make('user.index', $data);

My View is: 我的观点是:

@foreach($tests['message'] as $test)
    id : {{$test->id}}
@endforeach

which gives me Undefined index: message 这给了我Undefined index: message

I had dump the the $data in the controller. 我在控制器中转储了$data my array is as shown below. 我的数组如下所示。 I place the var_dump in the controller before the return statement. 我将var_dump放在return语句之前的控制器中。 my var_dump($data) is showing: 我的var_dump($data)显示:

    array(1) {
        ["tests"] => array(2) {
            [0] => object(Illuminate\ Database\ Eloquent\ Collection) #515 (1) { ["items":protected]= > array(2) {
                [0] => ["attributes": protected] => array(14) {
                    ["id"] => string(3) "12"....

        }
    }
            [1] => object(Illuminate\ Database\ Eloquent\ Collection) #515 (1) { ["items":protected]= > array(2) {
                [0] => ["attributes": protected] => array(14) {
                    ["id"] => string(3) "12"....

        }
    }
    }

what i'm doing wrong. 我做错了什么。 please help me 请帮我

@foreach($tests as $test)
//$test is an array returned by get query.
  @foreach($test as $item)
    id : {{$item->id}}
  @endforeach
@endforeach

get return array, if you want to return one element, use find() or first(). 获取返回数组,如果要返回一个元素,请使用find()或first()。

Your $tests['message'] should be $tests because you have not define message in your controller. 你的$tests['message']应该是$tests因为你没有在你的控制器中定义消息。

$message = array();
foreach($users as $user){
    $message[] = Model::where('id',$user->id)->get();
}
$data['tests'] = $message;
return View::make('user.index', $data);

View 视图

@foreach($tests as $test)
    id : {{$test->id}}
@endforeach

Try this: 尝试这个:

$users = App\User::all()
foreach($users as $user){
    $message[] = Model::where('id',$user->id)->get();
}
$data['tests'] = $message;
return view( 'user.index', compact('data') );

In views/user.index.blade.php 在views / user.index.blade.php中

@foreach($data['tests'] as $test)
    id : {{$test->id}}
@endforeach

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

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