2015-04-22 4 views
0

Laravel: Передача переменной из контроллера для просмотра

chatcontroller.php function returns variable to view:  
 
public function getChat() 
 
    { 
 
     $message = chat_messages::all();      
 
     return View::make('home',compact($message)); 
 
    } 
 
this is my route: 
 
Route::get('/getChat', array('as' => 'getChat','uses' => '[email protected]'));                  
 
this is my home.blade.php:               
 

 
@extends('layouts.main') 
 
@section('content') 
 
    <div class="container"> 
 
     <h2>Welcome to Home Page!</h2> 
 
     <p> <a href="{{ URL::to('/logout') }}" > Logout </a></p> 
 
     <h1>Hello <span id="username">{{ Auth::user()->username }} </span>!</h1> 
 
     <div id="chat_window"> 
 
       
 
     </div> 
 
     <input type="text" name="chat" class="typer" id="text" autofocus="true" onblur="notTyping()"> 
 
     
 
    </div> 
 
<ul> 
 
@foreach($message as $msg) 
 
<li> 
 
{{ $msg['sender_username']," says: ",$msg['message'],"<br/>" }} 
 
</li> 
 
@endforeach 
 
</ul> 
 
<script src="{{ asset('js/jquery-2.1.3.min.js') }}"></script> 
 
<script src="{{ asset('js/chat.js') }}"></script> 
 

 
@stop         

Я пытаюсь отправить результат, возвращаемый запросом на выборку для просмотра из контроллера.

, когда я делаю это с homecontroller.php, тогда он отлично работает. , если я попытаюсь перейти от контроллера, который я определил, он дает сообщение об ошибке как: Неопределенная переменная.

Я использовал extends \ BaseController, мне нужно сделать что-нибудь еще, чтобы получить доступ к моей переменной контроллера из представления.

, пожалуйста, предложите какой-нибудь учебник, если это возможно.

+0

Возможно, ваш маршрут не имеет доступа ваш определенный контроллер. Вы должны изменить его, чтобы использовать новый контроллер вместо HomeController. –

+0

Можете ли вы предоставить код? – Needpoule

+0

Проблема должна быть в ваших маршрутах. Покажите нам какой-то код, плз. –

ответ

1

Проверьте маршрут, чтобы убедиться, что она использует новый контроллер:

Route::get('user/profile', array('uses' => '[email protected]')); 
1

Прежде всего, проверьте ваши маршруты, как говорит Матей Михай. Существует два разных способа передачи данных в ваш вид;

$items = Item::all(); 

// Option 1 
return View::make('item.index', compact('items')); 

// Option 2 
return View::make('item.index')->with('items', $items); // same code as below 

// Option 3 
View::share('item.index', compact('items')); 
return View::make('item.index); 
0

Вы также можете сделать это:

$this->data['items'] = Item::all(); 

return View::make('item.index', $this->data); 
Смежные вопросы