Laravel5.1控制器小结
控制器一般存放在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控制器小结的更多相关文章
- 关于laravel5.5控制器方法参数依赖注入原理深度解析及问题修复
在laravel5.5中,可以根据控制器方法的参数类型,自动注入一个实例化对象,极大提升了编程的效率,但是相比较与Java的SpringMVC框架,功能还是有所欠缺,使用起来还是不太方便,主要体现在方 ...
- Laravel5.1 -控制器(初步了解)
首先道个歉 这篇笔记是前两天就应该写的,可大K有点事儿要忙 就耽误了,今天抽空学了学控制器,并写个笔记分享下. 为什么要使用控制器 像我们之前写一些逻辑呢都是在Route(路由)中,搞得Route文件 ...
- kubernetes实践之四:深入理解控制器(workload)
一.Pod与controllers的关系 controllers:在集群上管理和运行容器的对象 通过label-selector相关联 Pod通过控制器实现应用的运维,如伸缩,升级等 二.Deploy ...
- laravel5增删改查
路由规则: 数据库配置: config/database.php laravel5/.env 控制器: 表单: 展示页面: 修改页面:
- [连载]《C#通讯(串口和网络)框架的设计与实现》- 0.前言
目 录 前言 前言 刚参加工作,使用过VB.VC开发软件,随着C#的崛起,听说是C++++,公司决定以后开发软件使用C#,凭借在 ...
- laravel有用的方法
1.tinker 造假数据 factory('App\User',3)->create(); DB::table 返回collection,可以用collection中的很多方法 比如-> ...
- net core WebApi——使用xUnits来实现单元测试
目录 前言 单元测试 xUnit 小结 附录 前言 从开始敲代码到现在,不停地都是在喊着记得做测试,记得自测,测试人员打回来扣你money之类的,刚开始因为心疼钱(当然还是为了代码质量),就老老实实自 ...
- Laravel5.1 报错:控制器不存在
Laravel5.1 报错:控制器不存在 错误提示: Class App\Http\Controllers\Api/UserController does not exist 解决: (1)检查控制器 ...
- Laravel5.1的控制器分组
Laravel5.1的控制器分组 默认的控制器时直接在app\Http\Controllers下,创建分组名字,路由配置使用:分组名\控制器名@方法名.
随机推荐
- CODESOFT中的圆角矩形的弧度该怎样设置?
CODESOFT标签设计软件提供多种图形制作按钮,方便用户更为快捷的制作标签.其中就包括矩形,圆角矩形的快捷创建按钮.本文将介绍如何设置CODESOFT圆角矩形的弧度. 若有疑问可直接访问:htt ...
- 游戏服务器生成全局唯一ID的几种方法
在服务器系统开发时,为了适应数据大并发的请求,我们往往需要对数据进行异步存储,特别是在做分布式系统时,这个时候就不能等待插入数据库返回了取自动id了,而是需要在插入数据库之前生成一个全局的唯一id,使 ...
- Xcode entitlement 问题定位和解决指南
背景故事 前两天,本来一个运行正常.打包测试都没问题的XCode工程突然爆出各种奇怪的Entitlement错误: 什么签名的内容跟配置文件的不一致. 又或者 无法安装,因为签名或者配置文件的配置错误 ...
- awk中怎么比较字符串??
awk -vOFS="_" '{print $1,$2,$3} http://bbs.chinaunix.net/thread-1099655-1-1.html
- ICDM 2007
Language-Independent Set Expansion of Named Entities Using the Web. Chao Wang, Venu Satuluri, Sriniv ...
- android View 继承关系
二. View SurfaceView GLSurfaceView View SurfaceView GLSurfaceView 功能 显示视图,内置画布,提供图形绘制函数.触屏事件.按键事件 ...
- extern “C”原理,用法以及使用场景-2016.01.05
1 问题提出 在编程过程中,经常发现如下用法: #ifndef _FILE_NAME_H_ #define _FILE_NAME_H_ #ifdef __cplusplus extern " ...
- Oracle笔记 九、PL/SQL 游标的使用
--演示隐式游标,系统自动声明,自动打开,自动使用并且自动关闭 begin update emp set sal = 1000; dbms_output.put_line('影响的行数:' || sq ...
- abstract 和 interfaces 的用法注意事项
abstract : abstract class calssname{} 1.abstract也可也修饰普通的类,这样的目的是为了防止用这个类来创建对象: 2.abstract中的abstract ...
- .NET中的属性
1.What?什么是属性 属性是对字段的封装.当类中有了一个字段以后,为了控制这个字段对外的一些表现(例如可访问性,是只读?只写?或者对自读赋值做一些必要的验证等等)我们把这个字段私有化( ...