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连接数据库批量打 印.但是如果数据量很大,该如何选择 ...
- GUI创建各常用控件(二)
继续接着上一篇! 在我看来有一点需要申明:由于是GUI的相关知识,所以我只是在复习中粗略的总结而已,因此参考价值可能有限,更多的是当作自己学习的一个记录以及便于自己查阅. 好啦!干货继续: 1.类似于 ...
- Centos7 install Openstack - (第四节)添加计算服务(Nova)
Centos7 install Openstack - (第四节)添加计算服务(Nova) 我的blog地址:http://www.cnblogs.com/caoguo 该文根据openstack官方 ...
- ButterKnife的简单使用
刚刚学习Android,也不知道算不算已经入门!但是总感觉自己没有什么提高,所以就把一些学习内容写一遍下来. 今天接触了ButterKnife这个第三方框架 GitHub地址:https://gith ...
- jquery的end(),addBack()方法example
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- C# 请求外部服务的办法
) { returnMenuBeizhu = ; ).ToString() borrowT ...
- 安装npm
npm是nodejs官方未nodejs定制的一个工具,是Node.js的包管理器,是Node Packaged Modules的简称,通过npm可以下载安装nodejs的模块包,nodejs有很多优秀 ...
- 现代福尔摩斯 - Oxygen Forensic Suite
各位可曾听说过智能手机取证软件Oxygen Forensic Suite,它的logo是名侦探福尔摩斯一手抽着他的招牌雪茄,一手拿着放大镜,全神贯注地正进行调查工作. 使用过它的取证人员必定会对它的提 ...
- Android IOS WebRTC 音视频开发总结(五十)-- 技术服务如何定价?
这篇文章最早是杜老师写的,看完感触很深,加上之前跟咨询公司的朋友也讨论过这方面的问题,所以结合自己的经验,做了些删改(得到了杜老师的授权). 先通过下面几个简单的问题来了解技术服务: 问题1:技术服务 ...
- grep,awk和sed的常用命令和语法
Grep的常用命令语法 1. 双引号引用和单引号引用在g r e p命令中输入字符串参数时,最好将其用双引号括起来.例如:“m y s t r i n g”.这样做有两个原因,一是以防被误解为 s h ...