我正在尝试制作一个服务器laravel,我的想法是,给定一个电子邮件地址和密码,你可以在数据库中搜索elusuario,如果有人用json回答我。我的问题是我不知道我做得好吗
我的代码:
模型
Class Usuario extends Eloquent{
protected $table = 'Usuario';
}
UsuarioController
class UsuarioController extends BaseController{
public function buscarUsuario($Correo, $Contraseña){
$usuario = Usuario::find($Correo,$Contraseña)->toJson();
return View::make('usuario.lista', array('usuario' => $usuario));
}
}
lista.blade.php(查看/ usuario)
{{$usuario}}
routes.php文件
Route::get('usuario/{Correo}/{Contraseña}', array('uses' => 'UsuarioController@buscarUsuario'));
我也想知道,如何发送值ls URL以查看JSON是否运行良好?
答案 0 :(得分:1)
如果您只需要将json作为响应返回:
class UsuarioController extends BaseController {
public function buscarUsuario($Correo, $Contraseña)
{
$usuario = Usuario::find($Correo,$Contraseña);
return Response::json(array('usuario' => $usuario));
}
}
如果您使用浏览器关注网址:
http://localhost/marsur-servidor/usuario/user@domain.com/mypassword12345
当然,如果您的网址以
开头http://localhost/marsur-servidor/
你应该看到:
{
usuario: {
...
}
}
我不确定Laravel和PHP是否也会使用重音符号,因此您可能需要更改(在所有代码中)
Contraseña
要
Contrasena
答案 1 :(得分:1)
以下是使用JSON回复的一个示例。你真的不需要一个发送JSON的视图,你只需要一个回复:
public function buscarUsuario($Correo, $Contraseña) {
$usuario = Usuario::find($Correo,$Contraseña)->toJson();
$array = [ 'field1' => $usario->field1, 'field2' => $usario->field2 ];
$statusCode = 200;
$response = Response::json($array, $statusCode);
return $response;
}
但是,您可以利用some packages out there,只要请求它就可以转换JSON。 This也是Phil Sturgeon撰写的一篇很棒的文章,讲述了变形金刚以及它们如何为你提供帮助,并提供了使用我链接的软件包的例子。
答案 2 :(得分:0)
如果要返回JSON输出,则不应使用View,而应使用特殊JSON Response。否则标头将不是json标头。 我不完全确定你的问题是什么,但我希望这个链接可以帮助你。
<?php
public function buscarUsuario($Correo, $Contraseña){
$usuario = Usuario::find($Correo,$Contraseña)->toJson();
return Response::json($usario);
}
答案 3 :(得分:0)
直接从控制器返回模型会将其转换为JSON,并将其作为JSON响应发送:
public function buscarUsuario($Correo, $Contraseña)
{
$user = Usuario::whereEmail($Correo)->first();
if ( $user && Hash::check($Contraseña, $user->password) )
{
return $user;
}
}
这假设您的数据库列名为email
&amp;分别为password
。如果他们不同,请将其切换出来。
另外,我假设数据库中的密码是经过哈希处理的。如果他们不是(为什么???),只需将密码添加为另一个where
查询:
public function buscarUsuario($Correo, $Contraseña)
{
return Usuario::whereEmail($Correo)->wherePassword($Contraseña)->first();
}