我试图找出原因,当使用Laravel' s Response::json
返回json数组时,我得到一个空对象,它应该返回一个html块。
这是我在控制器中的方法,它使用Eloquent模型添加新记录:
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":{}}
当我刚刚返回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内容发生冲突?
答案 0 :(得分:2)
解决方案似乎是使用方法render()
:
$row = View::make('partials.row', array('todo' => $todo))->render();