控制器一般存放在app\Http\Controllers目录下,所有Laravel控制器都应继承基础控制器类。

基础控制器

  • 基础控制器例子:
<?php

namespace App\Http\Controllers;

use App\User;
use App\Http\Controllers\Controller; class UserController extends Controller
{
/**
* 显示指定用户的个人数据。
*
* @param int $id
* @return Response
*/
public function showProfile($id)
{
return view('user.profile', ['user' => User::findOrFail($id)]);
}
}
  • 路由指定控制器行为:
Route::get('user/{id}', 'UserController@showProfile');
  • 路由指定控制器行为:
Route::get('user/{id}', 'UserController@showProfile');

RESTful资源控制器:

  • 资源控制器让你可以轻松地创建与资源相关的 RESTful 控制器,注册资源化路由:
Route::resource('photos', 'PhotosController');

这一条路由声明会创建多个路由,用来处理各式各样和相片资源相关的的 RESTful 行为。

  • 由资源控制器处理的行为:

  • 附加资源控制器

    如果想在资源控制器中默认的资源路由之外加入其它额外路由,则应该在调用Route::resource之前 定义这些路由。否则,由resource方法定义的路由可能会不小心覆盖你附加的路由:
Route::get('photos/popular', 'PhotosController@method');
Route::resource('photos', 'PhotosController');

附:

RESTful资源控制器的更新和删除操作调用起来比较特殊,特在此贴点代码:

在view中调用删除操作:

<form action="{{ url('admin/article/'.$article->id) }}" method="POST" style="display: inline;">
{{ method_field('DELETE') }}
{{ csrf_field() }}
<button type="submit" class="btn btn-danger">删除</button>
</form>

在对应的控制器中进行删除操作:

public function destroy($id)
{
Comment::find($id)->delete();
return redirect()->back()->withInput()->withErrors('评论删除成功!');
}

在view中调用更新操作:

<form action="{{ url('admin/article/'.$article->id) }}" method="POST">
{{ method_field('PATCH') }}
{{ csrf_field() }}
<input type="text" name="title" class="form-control" required="required" placeholder="请输入标题" value="{{ $article->title }}">
<br>
<textarea name="body" rows="10" class="form-control" required="required" placeholder="请输入内容">{{ $article->body }}</textarea>
<br>
<button class="btn btn-lg btn-info">提交修改</button>
</form>

在对应的控制器中进行更新操作:

public function update(Request $request,$id)
{
//数据验证
$this->validate($request, [
'title' => 'required|max:255',
'body' => 'required',
]); $article = Article::find($id);
$article->title = $request->get('title');
$article->body = $request->get('body'); if ($article->save()) {
return redirect('admin/article')->withErrors('更新成功!');
} else {
return redirect()->back()->withInput()->withErrors('更新失败!');
}
}

附加的这些代码只供参考,没有实际意义

Laravel5.1控制器小结的更多相关文章

  1. 关于laravel5.5控制器方法参数依赖注入原理深度解析及问题修复

    在laravel5.5中,可以根据控制器方法的参数类型,自动注入一个实例化对象,极大提升了编程的效率,但是相比较与Java的SpringMVC框架,功能还是有所欠缺,使用起来还是不太方便,主要体现在方 ...

  2. Laravel5.1 -控制器(初步了解)

    首先道个歉 这篇笔记是前两天就应该写的,可大K有点事儿要忙 就耽误了,今天抽空学了学控制器,并写个笔记分享下. 为什么要使用控制器 像我们之前写一些逻辑呢都是在Route(路由)中,搞得Route文件 ...

  3. kubernetes实践之四:深入理解控制器(workload)

    一.Pod与controllers的关系 controllers:在集群上管理和运行容器的对象 通过label-selector相关联 Pod通过控制器实现应用的运维,如伸缩,升级等 二.Deploy ...

  4. laravel5增删改查

    路由规则: 数据库配置: config/database.php laravel5/.env 控制器: 表单: 展示页面: 修改页面:

  5. [连载]《C#通讯(串口和网络)框架的设计与实现》- 0.前言

                                  目       录 前言 前言 刚参加工作,使用过VB.VC开发软件,随着C#的崛起,听说是C++++,公司决定以后开发软件使用C#,凭借在 ...

  6. laravel有用的方法

    1.tinker 造假数据 factory('App\User',3)->create(); DB::table 返回collection,可以用collection中的很多方法 比如-> ...

  7. net core WebApi——使用xUnits来实现单元测试

    目录 前言 单元测试 xUnit 小结 附录 前言 从开始敲代码到现在,不停地都是在喊着记得做测试,记得自测,测试人员打回来扣你money之类的,刚开始因为心疼钱(当然还是为了代码质量),就老老实实自 ...

  8. Laravel5.1 报错:控制器不存在

    Laravel5.1 报错:控制器不存在 错误提示: Class App\Http\Controllers\Api/UserController does not exist 解决: (1)检查控制器 ...

  9. Laravel5.1的控制器分组

    Laravel5.1的控制器分组 默认的控制器时直接在app\Http\Controllers下,创建分组名字,路由配置使用:分组名\控制器名@方法名.

随机推荐

  1. Android开发-API指南-Bound 类型的服务

    Bound Services 英文原文:http://developer.android.com/guide/components/bound-services.html 采集(更新)日期:2014- ...

  2. Docker学习总结之docker安装

    Ubuntu安装指南 以下均翻译自Docker官方文档 ,转载请注明:Vikings翻译 Docker 支持多种平台下的安装运行,现在我们选取结合度最高的ubuntu来说明安装过程. 首先需要明确Do ...

  3. JDK源码分析之集合02ArrayList

    一.前言 有了前一篇对集合类的概述,我们知道ArrayList是属于Collection类系中的一个具体实现类,其特点是长度可以动态改变,集合内部使用数组保存元素.下面我们对源码进行分析. 二.Arr ...

  4. Oracle密码过期the password has expired

    oracle11G新特征,半年会提醒一次修改新密码 正常情况:只要输入原先帐号密码,回车即可. 不正常情况:输入新密码帐号,回车,提示验证错误,这时就需要切换到没过期的管理员用户,高权限也行,输入   ...

  5. 关于Rational Functional Tester (RFT)的简单介绍

    前段时间给客户做了个RFT的简单培训,以下.因为涉及到公司的框架,所以中间省去了很多框架里的细节,只留了一个框架的总体结构的概览. RFT IBM Rational Functional Tester ...

  6. Activity的四种launchMode 详细分析

    launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的 Activity实例,是否和其他Activity实例公用一个tas ...

  7. windows异常调用顺序

    (一) 发生异常时系统的处理顺序(by Jeremy Gordon, Hume): 1.系统首先判断异常是否应发送给目标程序的异常处理例程,如果决定应该发送,并且目标程序正在被调试,则系统     挂 ...

  8. [设计模式 3] 用设计模式的眼光看MVC框架

    导读:之前一直在区分MVC和设计模式的区别,但是,既然有些人认为MVC是一种设计模式,那么它们之间肯定是有共通之处的.所以,本篇博客,就用设计模式的眼光来看MVC框架.仅是本人对于MVC的粗鄙看法,还 ...

  9. 理解CSS中BFC

    BFC(Block Formatting Context) 是Web页面中盒模型布局的CSS渲染模式.它的定位体系 属于 常规文档流 .摘自 W3C : 浮动,绝对定位元素, inline-block ...

  10. Linux使用有线上网教程

    本人亲测Linux(Ubuntu kylin 14.04)有线上网方法,下面是步骤: 一,运行Terminal(终端),输入  sudo pppoeconf  命令,设置账号和密码后,其他的全选yes ...