Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Всем добрый день ознакомился со следующим материалом:
http://laravel.ru/docs/v4/eloquent
http://laravel.ru/articles/rees/eloquent
http://laravel.ru/docs/v4/controllers
http://laravel.ru/docs/v4/requests
У меня есть модель CHAT которая обращается к таблице chat в которой содержаться строки 'mid', 'ch','poz','time','message','private'
Также у меня есть контроллер ChatController и страница с blade шаблоном chat.blade.php
Я ни как не могу понять как мне вывести на chat.blade.php через ChatController определенные столбцы из таблицы chat
Я уверен что ответ тривиально прост, но могли бы объяснить
заранее спасибо
Не в сети
Если вы не создали модель для CHAT, то вот так
// ChatController.php
public function showChats() {
$chats = DB::table('chat')->get(array('mid','ch'));
return View::make('chat', array(
'chats' => $chats
));
}
// routes.php
Route::get('chats', 'ChatController@showChats');
Не в сети
запрос от корня сайта: /chat
выведет вторую запись.
/app/models/Chat.php
<?php
class Chat extends Eloquent {
protected $table = 'chat';
}
/app/controllers/ChatController.php
<?php
class ChatController extends Controller {
public function index()
{
return View::make('chat')->with('rows',Chat::where('ch','=','ch 2')->get());
}
}
/app/views/chat.blade.php
<!DOCTYPE html>
<html>
<head></head>
<body>
@if(count($rows) > 0)
<table cellspacing="0" cellpadding="0" border="1" width="100%">
@foreach($rows as $row)
<tr>
<td>{{$row->id}}</td>
<td>{{$row->mid}}</td>
<td>{{$row->ch}}</td>
<td>{{$row->poz}}</td>
<td>{{$row->time}}</td>
<td>{{$row->message}}</td>
<td>{{$row->private}}</td>
</tr>
@endforeach
</table>
@else
данных нет
@endif
</body>
</html>
/app/routes.php
<?php
Route::resource( 'chat', 'ChatController');
Таблица
--
-- Структура таблицы `chat`
--
CREATE TABLE IF NOT EXISTS `chat` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`mid` text NOT NULL,
`ch` text NOT NULL,
`poz` text NOT NULL,
`time` text NOT NULL,
`message` text NOT NULL,
`private` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
--
-- Дамп данных таблицы `chat`
--
INSERT INTO `chat` (`id`, `mid`, `ch`, `poz`, `time`, `message`, `private`) VALUES
(1, 'mid 1', 'ch 1', 'poz 1', 'time 1', 'message 1', 'private 1'),
(2, 'mid 2', 'ch 2', 'poz 2', 'time 2', 'message 2', 'private 2'),
(3, 'mid 3', 'ch 3', 'poz 3', 'time 3', 'message 3', 'private 3');
Не в сети
Дабы не плодить однородные темы. В общем есть база, есть таблица todos в которой есть пара записей.
Контроллер TodoController.php:
<?php
class TodoController extends BaseController {
public function showTodos() {
View::make('todo')->with('todos', Todo::all());
}
}
Модель Todo.php:
<?php
class Todo extends Eloquent {
public $timestamps = false;
}
Шаблон todo.blade.php
<h1>TodoШечки:</h1><br />
@foreach ($todos as $todo)
<p>todoID {{ $todo->id }}</p>
@endforeach
Маршрут:
Route::get('todo', 'TodoController@showTodos');
Перехожу по http://localhost/laravel/public/todo, а в ответ чистая страница, даже <h1>...</h1> заголовок не выводится. Пробовал передать ->with('test', 'привет') в шаблон, выводится нормально.
Изменено sumrok (04.12.2013 10:06:58)
Не в сети
На первый взгляд напоминает соседнюю тему, хотя не вижу, где здесь похожая ошибка. Выведи разные переменные через PHPdd();
, посмотри что покажет.
Не в сети
В общем шаблон вообще ничего не выводит, даже если обычный текст в нем написать.
Не в сети
Моя невнимательность меня погубила, забыл про return ))
Не в сети
Страницы 1