控制器一般存储在app/controllers
目录下,所有的控制器都要继承BaseController
类。BaseController
类也存储在app\controllers
下,通常用来放置公用的控制器逻辑。BaseController
类继承自框架的Controller
类。
在终端新建控制器和指定操作:
php artisan controller:make PostController --only='index,show'
基础控制器
- 基础控制器例子
<?php
class UserController extends BaseController {
public function showUser($username)
{
return 'My name is '.$username;
}
}
- 在路由中调用控制器
Route::get('user/{username}', 'UserController@showuser');
RESTful控制器
- RESTful控制器例子
class UserController extends BaseController {
public function getIndex()
{
//
}
public function postProfile()
{
//
}
public function anyLogin()
{
//
}
}
- 在路由中使用
Route::controller
方法定义路由
Route::controller('users', 'UserController');
资源控制器
资源控制器让围绕资源构建的RESTful控制器变得更加简单。
- 在终端新建控制器
php artisan controller:make PhotoController
- 资源控制器例子
<?php
class PhotoController extends \BaseController {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @return Response
*/
public function store()
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param int $id
* @return Response
*/
public function update($id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return Response
*/
public function destroy($id)
{
//
}
}
- 在路由中使用
Route::resource()
方法定义路由
Route::resource('photo', 'PhotoController');