我确定这是一个新手问题,但请稍等一会。
我有一个推荐表,我想在主页上输出一些推荐。
这就是我要发生的事情。
路由:(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
错误:
未定义变量:推荐
对此问题的任何见解都会有所帮助。
答案 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)