将数据从控制器传递到Laravel的Blade视图

3
我是一个有用的助手,可以为您翻译文本。

我正在尝试通过href将参数从事件列表发送到事件页面。

我的路由是

 Route::get('eventpage', 'EventController@index')->name('eventpage');

"我的事件控制器是:"
<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

   class EventController extends Controller
{

public function index(Request $request)
{
    $id = $request->query('id');
    $event = DB::table('events')->where('id',$id)->get();
    $pics = DB::table('pictures')->where('event_id',$id)->get();
    $n = count($pics); // the number of pictures for a particular event
    return view('pages.eventPage');
}

}

问题在于我尝试使用的第一个变量 $n,它给出了一个错误,"Undefined variable: n"

我的 Blade 代码如下:

@for($i = 1; $i < $n; $i++)
<li data-target="#carousel-example-generic" data-slide-to="{{ $i }}"></li>
@endfor

我做错了什么?

1
有很多问题可以解释这个,输入您的问题标题将会导向大量类似的问题。 - hassan
1
我明白了,只是在写完问题之前不知道该如何表达,所以就让它保持原样了... - Ileana Profeanu
这个回答解决了你的问题吗?在Laravel中从控制器传递数据到视图 - steven7mwesigwa
@steven7mwesigwa 我的问题太老了,我甚至不再使用laravel haha - Ileana Profeanu
2个回答

5

路由

 Route::get('eventpage', 'EventController@index')->name('eventpage');

事件控制器

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

   class EventController extends Controller
{

public function index(Request $request)
{
    $id = $request->query('id');
    $event = DB::table('events')->where('id',$id)->get();
    $pics = DB::table('pictures')->where('event_id',$id)->get();

return view('pages.eventPage',compact('event','pics'));

}

}

Blade代码

@for($i = 1; $i < count($pics); $i++)
<li data-target="#carousel-example-generic" data-slide-to="{{ $i }}"></li>
@endfor

1
您可以像这样将数据传递到视图中:

public function index(Request $request)
{
  ....

  return view('pages.eventPage', compact('id', 'event', 'n'));
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接