Laravel没有将查询结果从控制器传递给视图

时间:2016-10-19 15:53:51

标签: php laravel laravel-5 laravel-5.2

Laravel版本5.2

我的控制器文件:

<?php

namespace App\Http\Controllers;

use App\questions;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Http\Requests;

class Dashboard extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
    }
    public function fetchQuestions() {
        //
    }
    public function index(){
        $listQuestions=Auth::user()->questions()->pluck('question')->all();
        //dd($listQuestions);
        return view('forms.question',compact('listQuestions'));
    }
}

我的观点文件

<ul>
    @foreach ($listQuestions as $q)
        <li>{{ $q }}</li>
    @endforeach
    </ul>

$ listQuestions没有传递给视图。 但是从dd($ listQuestions)来看&amp;控制器文件,我明白了

    array:2 [▼
  0 => "some question"
  1 => "another question"
]

显示空视图页面,没有错误或输出 我在这里错过了什么?

3 个答案:

答案 0 :(得分:0)

pluck()方法按键检索值。你想要一个集合:

$listQuestions = Auth::user()->questions()->get();

$q是一个对象,因此您需要获取一个属性,即question

@foreach ($listQuestions as $q)
    <li>{{ $q->question }}</li>
@endforeach

答案 1 :(得分:0)

您也可以将变量传递给像这样的视图

return view('forms.question')
     ->with('listQuestions' , $listQuestions)

现在我相信你只是将字符串'listQuestions'传递给视图,所以它不能迭代它。因此空视图。

答案 2 :(得分:-1)

更改您的

   return view('forms.question',compact('listQuestions'));

   return view('forms.question',['listQuestions'=> $listQuestions]);

那应该有用