Reputation: 1356
Hello i am little bit confuse how to pass array controller to view this is my code.when pass array to view and in the view print {{ $menus }} i facing undefind varible in sidemenu.blade.php.
HomeController
<?php
namespace App\Http\Controllers;
use App\Http\Requests;
use Illuminate\Http\Request;
use App\Menu;
use DB;
/**
* Class HomeController
* @package App\Http\Controllers
*/
class HomeController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
return view('home');
}
public function side_menu()
{
$menus = DB::collection('menus')->get();
return view('partials.sidebar', compact('menus'));
}
}
my view
<ul class="sidebar-menu">
<li class="header">HEADER</li>
<!-- Optionally, you can add icons to the links -->
@if(count($menus)>0)
@foreach ($menus as $post)
<li class="active"><a href="{{ url('home') }}"><i class='fa fa-link'></i> <span>{{ $post->menu_name }}</span></a></li>
@endforeach
@endif
</ul>
Upvotes: 2
Views: 1848
Reputation: 9988
You're controller method should looks like:
public function side_menu()
{
$menus = DB::table('menus')->get();
return view('partials.sidebar', compact('menus'));
}
You should change the view like this:
<ul class="sidebar-menu">
<li class="header">HEADER</li>
<!-- Optionally, you can add icons to the links -->
@if($menus->count()>0)
@foreach ($menus as $post)
<li class="active"><a href="{{ url('home') }}"><i class='fa fa-link'></i> <span>{{ $post->menu_name }}</span></a></li>
@endforeach
@endif
</ul>
Use $menus->count()
rather then: count($menus)
.
Upvotes: 1
Reputation: 2328
$menus = DB::collection('menus')->get();
return view('partials.sidebar', array('menus'=>$menus,'title'=>'Test'));
In your view you can use $menus and $title variables
Upvotes: 0
Reputation: 3755
return view('greetings', ['name' => 'Victoria']);
Refer to https://laravel.com/docs/5.2/views#passing-data-to-views
Upvotes: 0