针对 IOS 应用程序的 laravel 服务的算法设计
Algorithm design for laravel services to an IOS App
我曾经为移动应用程序服务开发 codeignitor,但现在我被指示使用 Laravel 而不是 codeignitor。
在 codeignitor 中,我们可以直接从 url 调用控制器(在我的例子中是 API),这样我们就可以发送一些数据。但是在 Laravel 中我们不能直接从 URL 调用控制器所以我们必须使用路由来调用控制器。
那么移动应用程序将如何调用并向路由发送数据,然后该路由将调用API的相应服务。
我是 laravel 的新手,所以任何帮助都会有很大的帮助。
谢谢。
如果您想为 API、运行 php artisan make:controller PhotoController
创建足智多谋的控制器,它将为您的资源生成所有基本的 CRUD 操作(此处为照片)。现在,在您的 routes.php
文件中,您会看到可以添加 Route::resource('photo', 'PhotoController');
,这将为您生成所有路由。您可以通过 运行ning php artisan route:list
查看所有路线的列表。参考:https://laravel.com/docs/5.1/controllers#restful-resource-controllers
在您的控制器方法中,您可以执行与以前在 Codeignitor 中执行的操作相同的操作。您可以使用适当的参数从 IOS 调用 get/post 路由,它会为您做事。
编辑:
在您的控制器方法中,您可以像这样发送数据:
public function someFunction(Request $request){
$data = $request->get('some_key_sent_from_device');
}
这些工作与 php 或 codeignitor 上的工作相同。
POST 方法。
在本机 php 和 codeignitor 中,您可以通过在 Laravel 中指定 POST method.However 来获取输入字段,您必须在 route 中指定。
我希望您对 MVC 有所了解。您将像那样指定 post 路由....
Route::post('/login', 'Api@Signin');
这是一个简单的用户登录服务。
public function Signin()
{
$validation = Validator::make(Request::all(),[
'email' => 'required',
'password' => 'required',
'device_type' => 'required',
'device_token' => 'required',
]);
if($validation->fails())
{
$finalResult = array('code' => 100,
'msg' => 'Data Entered Not Correct.',
'data' => array()
);
}
else
{
$login = User::where(
[
['email', '=', Input::get('email')],
['password', '=', md5(Input::get('password'))],
])->first();
if (is_null($login))
{
$finalResult = array('code' => 100,
'msg' => 'Your Account Does not exist.',
'data' => array()
);
}
else
{
$user= User::where('email', '=', Input::get('email'))->first();
$user->device_token = Input::get('device_token');
$user->device_type = Input::get('device_type');
$user->save();
$data = User::where(
[ 'email' =>Input::get('email')],
[ 'password' =>md5(Input::get('password'))]
)->get();
$finalResult = array('code' => 200,
'msg' => 'Success',
'data' => $data
);
}
}
echo json_encode($finalResult);
}
我曾经为移动应用程序服务开发 codeignitor,但现在我被指示使用 Laravel 而不是 codeignitor。
在 codeignitor 中,我们可以直接从 url 调用控制器(在我的例子中是 API),这样我们就可以发送一些数据。但是在 Laravel 中我们不能直接从 URL 调用控制器所以我们必须使用路由来调用控制器。 那么移动应用程序将如何调用并向路由发送数据,然后该路由将调用API的相应服务。
我是 laravel 的新手,所以任何帮助都会有很大的帮助。
谢谢。
如果您想为 API、运行 php artisan make:controller PhotoController
创建足智多谋的控制器,它将为您的资源生成所有基本的 CRUD 操作(此处为照片)。现在,在您的 routes.php
文件中,您会看到可以添加 Route::resource('photo', 'PhotoController');
,这将为您生成所有路由。您可以通过 运行ning php artisan route:list
查看所有路线的列表。参考:https://laravel.com/docs/5.1/controllers#restful-resource-controllers
在您的控制器方法中,您可以执行与以前在 Codeignitor 中执行的操作相同的操作。您可以使用适当的参数从 IOS 调用 get/post 路由,它会为您做事。
编辑: 在您的控制器方法中,您可以像这样发送数据:
public function someFunction(Request $request){
$data = $request->get('some_key_sent_from_device');
}
这些工作与 php 或 codeignitor 上的工作相同。
POST 方法。 在本机 php 和 codeignitor 中,您可以通过在 Laravel 中指定 POST method.However 来获取输入字段,您必须在 route 中指定。 我希望您对 MVC 有所了解。您将像那样指定 post 路由....
Route::post('/login', 'Api@Signin');
这是一个简单的用户登录服务。
public function Signin()
{
$validation = Validator::make(Request::all(),[
'email' => 'required',
'password' => 'required',
'device_type' => 'required',
'device_token' => 'required',
]);
if($validation->fails())
{
$finalResult = array('code' => 100,
'msg' => 'Data Entered Not Correct.',
'data' => array()
);
}
else
{
$login = User::where(
[
['email', '=', Input::get('email')],
['password', '=', md5(Input::get('password'))],
])->first();
if (is_null($login))
{
$finalResult = array('code' => 100,
'msg' => 'Your Account Does not exist.',
'data' => array()
);
}
else
{
$user= User::where('email', '=', Input::get('email'))->first();
$user->device_token = Input::get('device_token');
$user->device_type = Input::get('device_type');
$user->save();
$data = User::where(
[ 'email' =>Input::get('email')],
[ 'password' =>md5(Input::get('password'))]
)->get();
$finalResult = array('code' => 200,
'msg' => 'Success',
'data' => $data
);
}
}
echo json_encode($finalResult);
}