Я пытаюсь понять, почему, возвращая массив json, используя Laravel's Response::json
, я получаю пустой объект, где он должен возвращать html-блок.Laravel: Response :: json с индексом, содержащим html
Вот мой метод в контроллере, который добавляет новую запись с помощью Красноречивых моделей:
public function add() {
$data = Input::only(array(
'title'
));
$validation = Validator::make($data, array(
'title' => 'required|min:3|alpha_num_spaces'
));
if ($validation->fails()) {
return Response::json(array(
'error' => true,
'validation' => $validation->messages()
));
}
$todo = new Todo();
$todo->title = $data['title'];
if (!$todo->save()) {
return Response::json(array(
'error' => true,
'validation' => array(
'title' => 'Record could not be added'
)
));
}
$row = View::make('partials.row', array('todo' => $todo));
return Response::json(array(
'error' => false,
'append' => $row
));
}
Когда все проверяется и запись добавлена в базу данных, последний Response::json
возвращается:
{"error":false,"append":{}}
Wheres когда Я просто вернусь View::make('partials.row', array('todo' => $todo));
Я получаю ожидаемый результат, который представляет собой строку таблицы с новой записью:
<tr data-id="17">
<td>
test 8
</td>
<td>
<a href="#" class="edit">Edit</a>
</td>
<td>
<a href="#" class="delete">Delete</a>
</td>
</tr>
Есть ли конфликт с Response::json
и html-контентом?
Вы можете убедиться, что '$ row' является строкой с' var_dump() '? – Sam
var_dump возвращает весь объект, поэтому не уверен, как преобразовать ответ объекта View в строку? –
Только что нашел сообщение [laravel 4 view to string] (http://www.stillat.com/blog/2013/10/31/laravel-4-rendering-a-view-to-a-string/) - это просто прикованный метод -> render() –