Mat*_*son 2 php json laravel laravel-4
我正在使用 Laravel 实现一个简单的注册表单。失败时,它应该返回一个 json 响应:
{"success":"false", "message":"Could not log in newly registered user"}`
Run Code Online (Sandbox Code Playgroud)
这按预期工作。如果注册和登录成功,我想返回:
{"success":"true", "message":$html}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,$html将使用视图创建。这其中的重要部分如下:
if(Auth::attempt(array('email' => Input::get('email'), 'password' => Input::get('password'))))
{
$html = View::make('welcome_new_user', array('first_name' => Input::get('first_name')));
return Response::json(array('success' => 'true', 'message' => $html));
}
else
{
return Response::json(array('success' => 'false', 'message' => 'Could not log in newly created user.'));
}
Run Code Online (Sandbox Code Playgroud)
失败时,我得到预期的响应。成功后,我得到"success":"true",但是一个空的message. 我$html在返回之前立即回显了,它包含预期的 html。为什么返回的消息是空的?
View::make()实际上返回一个Illuminate\View\View对象。用双引号包围变量的原因是因为这样做隐式调用$html->__toString(),它调用render()方法并返回由View对象表示的html 。
从 中获取 html 的显式方法View是render()直接调用该方法 ( $html->render())。