简体   繁体   中英

passing data from controller to blade view laravel

I am trying to send parameters through a href to a page from an events list to an event page.

My route is

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

And my event Controller is

<?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');
}

}

The trouble is that for the first variable I try to use, $n, it gives me an error, "Undefined variable: n "

My blade code is as follows

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

What am I doing wrong?

route

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

event Controller

<?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 code

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

You can pass your data to your view like that:

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM