无为清净楼资源网 Design By www.qnjia.com

本文实例讲述了Laravel5.1 框架控制器基础用法。分享给大家供大家参考,具体如下:

为什么要使用控制器

像我们之前写一些逻辑呢都是在Route(路由)中,搞得Route文件特别庞大,其实我们应该把这些逻辑都抽到一个控制器里,路由分发后到控制器,控制器做相应的操作,比如关于后台的逻辑应该抽到AdminController中,Route文件只管分发。

1 如何创建一个控制器

1.1.1 创建RESTful控制器

至于什么是RESTful?自行百度- -,我先简单说下,它里面自动填充了一些增删改查的方法。OK 我们在Artisan控制台创建:

php artisan make:controller Admin\\HomeController

然后 我们在 app/Http/Controller/Admin/ 下找到它:

class HomeController extends Controller
{
  /**
   * Display a listing of the resource.
   *
   * @return \Illuminate\Http\Response
   */
  public function index()
  {
  }
  /**
   * Show the form for creating a new resource.
   *
   * @return \Illuminate\Http\Response
   */
  public function create()
  {
    //
  }
  /**
   * Store a newly created resource in storage.
   *
   * @param \Illuminate\Http\Request $request
   * @return \Illuminate\Http\Response
   */
  public function store(Request $request)
  {
    //
  }
  /**
   * Display the specified resource.
   *
   * @param int $id
   * @return \Illuminate\Http\Response
   */
  public function show($id)
  {
    //
  }
  /**
   * Show the form for editing the specified resource.
   *
   * @param int $id
   * @return \Illuminate\Http\Response
   */
  public function edit($id)
  {
    //
  }
  /**
   * Update the specified resource in storage.
   *
   * @param \Illuminate\Http\Request $request
   * @param int $id
   * @return \Illuminate\Http\Response
   */
  public function update(Request $request, $id)
  {
    //
  }
  /**
   * Remove the specified resource from storage.
   *
   * @param int $id
   * @return \Illuminate\Http\Response
   */
  public function destroy($id)
  {
    //
  }
}

每个方法就是它的字面意思,至于怎么使用,我们来注册一条路由就清楚了。

1.1.2 实现RESTful路由

Route::group(['prefix' => 'admin', 'namespace' => 'Admin'], function (){
  Route::resource('/', 'HomeController');
});

resource是为RESTful风格的控制器注册多条路由的 我们可以在Artisan控制台看看:

php artisan route:list

如果没有什么错误的话,咱肯定会看见打印出来的表,表里面标明了每条路由的属性,如果你还是不太明白,那无所谓~咱以后的文章会频繁使用到这些内容哦。

1.2.1 普通控制器

在实际开发中啊 有时候咱不一定需要RESTful风格的服务器,我们只想要一个空的控制器来自己实现一些方法,可以这么生成:

php artisan make:controller UserController --plain

只要后面跟个plain标识符 就可以生成空的控制器啦。

1.2.2 单条路由使用控制器

上面是使用resource方法来对应控制器的动作了,像这种空的控制器咱怎么在路由中使用呢?

/**
 * 控制器名@方法名 就可以了
 */
Route::get('/user', 'UserController@index');
/**
 * 这是在配置一些其他东西时的写法,因为要在数组中嘛,它对应的KEY是uses。
 */
Route::get('/user', ['as' => 'showUser', 'uses' => 'UserController@index']);

然后自行实现UserController的index方法就可以咯:

class UserController extends Controller
{
  public function index()
  {
    return '展示一些东西';
  }
}

1.3.1 其实还有另一种写法 隐式控制器

这种路由我不太常用 先来看看语法吧:

Route::controller('/user', 'UserController');

首先 使用了controller来注册路由,第一个参数是路径没新鲜的,第二个参数是控制器 但是它没有跟着方法。因为它能自动根据路径相应到方法 看看下面控制器方法的实现。

class UserController extends Controller
{
  /**
   * 对应着 /user/ 路由 GET方式
   */
  public function getIndex()
  {
    return '展示一些东西~';
  }
  /**
   * 对应着 /user/show/{id} 路由 GET方式
   */
  public function getShow($id)
  {
    return '此用户ID为: '.$id;
  }
  /**
   * 对应着 /user/update/{id} 路由 POST方式
   */
  public function postUpdate($id, Requests\Request $request){
  }
}

这个控制器的方法开头都是HTTP请求的方式 最常用的就是GET 和 POST 后面跟的是方法名字,具体对应的路径在注释中写清楚了。

如果你想给这些路由命名的话,后面可以跟一个数组来命名:

Route::controller('/user', 'UserController',['getShow' => 'user.show']);

这样就可以给对应的方法命名了,oh funk 大K真的不喜欢这种方式,也许是没明白这样写的真谛把。

--今天关于控制器就先写这么多吧,具体逻辑实现咱还得学一些新的知识来结合使用,比如middleware啊和request还有blade模板引擎,但都不是很难~

更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

标签:
Laravel5.1,控制器

无为清净楼资源网 Design By www.qnjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
无为清净楼资源网 Design By www.qnjia.com

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。