Laravel控制器简单总结

控制器一般存储在app/controllers目录下,所有的控制器都要继承BaseController类。BaseController类也存储在app\controllers下,通常用来放置公用的控制器逻辑。BaseController 类继承自框架的Controller 类。

在终端新建控制器和指定操作:


 php artisan controller:make PostController --only='index,show'

基础控制器

  • 基础控制器例子


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
  • 资源控制器例子

/**
    * 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');

你可能感兴趣的:(Laravel)