如何从主视图Laravel 5.7返回表数据

时间:2018-11-29 00:55:12

标签: laravel laravel-5.7

我确定这是一个新手问题,但请稍等一会。

我有一个推荐表,我想在主页上输出一些推荐。

这就是我要发生的事情。

路由:(web.php)

Route::get('/', function () {
    return view('home');
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');

家庭控制器:

use DB;
use App\Testimonial;
...
public function index()
{
    $testimonial = DB::table('testimonials')->orderBy('id', 'DESC')->get();
    return view('home', compact('testimonials'));
}

主视图/刀片:

@foreach ($testimonial as $test)
<h4>{{$test->first_name}}</h4>
<p>{{$test->testimonial}}</p>
@endforeach

错误:

  

未定义变量:推荐

对此问题的任何见解都会有所帮助。

3 个答案:

答案 0 :(得分:2)

“ /”的路由直接进入“主视图”,而无需通过控制器。更改该路线以使用相同的控制器方法将解决此问题。

Route::get('/', 'HomeController@index');

变量名称也需要在控制器和视图中匹配。

控制器

use DB;
use App\Testimonial;
...
public function index()
{
    $testimonials = DB::table('testimonials')->orderBy('id', 'DESC')->get();
    return view('home', compact('testimonials'));
}

查看

@foreach ($testimonials as $test)
    <h4>{{$test->first_name}}</h4>
    <p>{{$test->testimonial}}</p>
@endforeach

这应该起作用,假设您的数据库查询实际上正在返回结果。如果仍然无法正常运行,请尝试在分配$ testimonials变量后检查其中的内容。

dd($testimonials);

答案 1 :(得分:1)

您要返回错误的变量,请按以下方式更改您的收益:

return view('home', compact('testimonial'));

那么一切都很好。

答案 2 :(得分:0)

由于您的变量称为$testimonial,因此您应该传递:

// singular testimonial
return view('home', compact('testimonial'));

然后,您可以使用:

@foreach ($testimonial as $test)