Что делать, когда переменная объявлять массив не определена в представлении, но работает там контроллер в laravel 5.7 - PullRequest
0 голосов
/ 18 февраля 2019

Вот код:

    public function chat($id=1){

    Route::view('/chat', 'chat');

    $id = View::make('chat.blade', ['reviewer_id' => Reviewer::findOrFail($id)]);

    $audiences = DB::table('audience')->get();

    $data = [
             'id'=>$id,
             'audiences'=>$audiences,
             'audience_id'=> 2
            ];
    return View::make('chat.blade', ['data'=>$data]);

}

Поскольку код прост, я перенаправляю на блейд-просмотр, получаю данные из базы данных, получаю данные об аудитории, инициализирую массив данных, возвращаю данные в простой код chat.blade, но вview

Неопределенная переменная: данные*

        <div>
        @foreach($data->audiences as $info->audience)
            {{$info->audience->id}};
        @endforeach
        </div>
        <div>
            <form action="/" method="post">
                <input type="hidden" value={{$reviewer_id}} name="id">
                <input type="hidden" value={{$audience_id}} name="id">
                <input type="text" name="message">
                <input type="submit" value="submit">
            </form>
        </div>



<?php $__currentLoopData = $data->audiences; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $info->audience): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
                <?php echo e($info->audience->id); ?>;
            <?php endforeach; $__env->popLoop(); $loop = 
$__env->getLastLoop(); 

?>

> неопределенная переменная $ data

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Если я делаю это, то я делаю это так

public function chat($id = 1){
    Route::view('/chat', 'chat'); // I don't know what that is
    $reviewer_id = Reviewer::findOrFail($id); // or Reviewer::find($id); 
    //I Update this little bit : $audiences = DB::table('audience')->get();
    $audiences = Audience::all();
    $audience_id = 2 ;
    return view('chat.blade', compact(['id','audiences','audience_id','reviewer_id']));
}

Теперь вы можете получить доступ ко всем переменным, переданным в компактном файле в вашем блейд-файле, например:

<div>
     // Depends on what is in the $audiences could be with "$key => $value" 
     @foreach($audiences as $key)
            {{$key->id}};
     @endforeach
</div>

<div>
   <form action="/" method="post">
     <input type="hidden" value={{$reviewer_id}} name="id">
     <input type="hidden" value={{$audience_id}} name="id">
     <input type="text" name="message">
     <input type="submit" value="submit">
   </form>
</div>
0 голосов
/ 18 февраля 2019

изменить $data->audiences на $data['audiences'] по вашему мнению.$ data это массив, а не объект

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...