如何将数组控制器传递给laravel 5中的view.blade.php

时间:2016-05-23 06:52:08

标签: laravel laravel-5

你好我有点混淆如何传递数组控制器来查看这是我的代码。当传递数组来查看时,在视图中打印{{$ menus}}我面对unfind varible in sidemenu.blade.php。

的HomeController

<head>
  <base href="https://polygit.org/polymer+:master/components/">
  <script src="webcomponentsjs/webcomponents-lite.min.js"></script>
  <link rel="import" href="polymer/polymer.html">
</head>
<body>
  <x-foo src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.4.6/socket.io.min.js"></x-foo>

  <dom-module id="x-foo">
    <template>
      <script src$="{{src}}"
              on-load="onScriptLoad"
              on-error="onScriptError"></script>
    </template>
    <script>
      Polymer({
        is: 'x-foo',
        onScriptLoad: function() {
          console.log('socket.io:script loaded');

          var socket = io.connect('http://localhost');
          socket.on('connect', function(e) {
              console.log('socket.io:connected:', e);
            })
            .on('connect_error', function(e) {
              console.log('socket.io:connection error:', e.message);
            })
            .on('news', function(data) {
              console.log('socket.io:news:', data);
            });
        },
        onScriptError: function(e) {
          console.log('socket.io:script err:', e);
        }
      });
    </script>
  </dom-module>
</body>

我的观点

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

3 个答案:

答案 0 :(得分:0)

return redirect('post_detail', kwargs={'year': post.publish.year, 'month': post.publish.month, 'day': post.publish.day, 'post': post.slug})

请参阅https://laravel.com/docs/5.2/views#passing-data-to-views

答案 1 :(得分:0)

$menus = DB::collection('menus')->get();
return view('partials.sidebar', array('menus'=>$menus,'title'=>'Test'));

在您的视图中,您可以使用$ menu和$ title variables

答案 2 :(得分:0)

你的控制器方法应该如下:

public function side_menu()
{
    $menus = DB::table('menus')->get();
    return view('partials.sidebar', compact('menus'));
}

你应该改变这样的观点:

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

使用$menus->count()而不是count($menus)