GVKun编程网logo

laravel第二讲:路由的定义及与控制器绑定(laravel路由机制)

14

本文将带您了解关于laravel第二讲:路由的定义及与控制器绑定的新内容,同时我们还将为您解释laravel路由机制的相关知识,另外,我们还将为您提供关于Laravel5基础教程||2.路由:链接与控

本文将带您了解关于laravel第二讲:路由的定义及与控制器绑定的新内容,同时我们还将为您解释laravel路由机制的相关知识,另外,我们还将为您提供关于Laravel 5 基础教程 || 2.路由:链接与控制器的连接者、Laravel 5 基础教程 || 2.路由:链接与控制器的连接者 - 表严肃、Laravel 5 系列教程二:路由,视图,控制器工作流程、Laravel 5.2 二、HTTP路由、创建控制器 与 资源路由的实用信息。

本文目录一览:

laravel第二讲:路由的定义及与控制器绑定(laravel路由机制)

laravel第二讲:路由的定义及与控制器绑定(laravel路由机制)

我们知道,网络中的路由器是用来选择路径、转发分组的,那么框架中的路由是用来干嘛的呢?这里的路由是用来接收http请求的路径,通过设置路径来访问特定程序的功能。路由是框架的核心功能之一,基本所有主流框架都有路由功能。并且,我们可以通过设置路由来将一些长的、深的路径该成短的、浅的路径(非常利于SEO的一个功能)。

默认路由文件

所有的laravel路由都在根目录的routes目录下的路由文件定义,框架默认自动加载这个目录下的文件。我们看看routes/web.PHP这个文件

use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});

基本路由

现在,我们在web.PHP文件中,新建一个最简单的路由,代码如下:

Route::get('index', function () {
    return study laravel;
});

现在,我们在浏览器中输入localhost:8000/index就可以看到study laravel这句话了。

常见路由方法

除了上述了get方法外,经常使用的路由方法有:post,put,delete,any,match。

这里的any方法表示不管是什么请求方式都可以,可以是get/post/put等请求方式,它都处理。而match可以用来指定多个请求,下面来演示match的用法:

Route::match(['get', 'post'], list, function ()
{
    return 'list';
});

参数传递

经常的,我们在路由中还会加入参数。比如/news/1这样是非常的常见。lavarel的路由方法支持参数的传递,如:

Route::get('news/{id}', function ($id) {
    return 'news:' . $id;
});

上述的路由虽然能够传递参数,但还是不能满足我的需求,我希望{id}这个参数必须是数字,那么,可以这样:

Route::get('news/{id}', function ($id) {
    return 'news:' . $id;
})->where('id', '\d+');

我们还可以传递多个参数,闭包中的参数会自动一一对应,如:

Route::get('/name/{name}/age/{age}', function($name, $age) {
    echo name:$name age:$age;
})->where(['name' => '\w+', 'age' => '\d+']);

路由与控制器绑定

首先,我们创建一个控制器文件app\Http\Controllers\IndexController.PHP,代码如下:

<?PHP
namespace App\Http\Controllers;
class IndexController extends Controller
{
    public function news ($id)
    {
        echo news:$id;
    }
}

现在修改路由文件web.PHP

Route::get('news/{id}', 'IndexController@news')->where('id', '\d+');

现在通过/news/1就能访问到IndexController控制器中的news方法了。

若创建了app/Http/Controllers/Home/IndexController.PHP,那么这个控制器的路由该如何设置呢?方法如下:

Route::get('home', 'Home\IndexController@index');

Laravel 5 基础教程 || 2.路由:链接与控制器的连接者

Laravel 5 基础教程 || 2.路由:链接与控制器的连接者

Laravel 5 基础教程 || 2.路由:链接与控制器的连接者 - 表严肃

直观的说,路由是用来解析地址栏中域名之后的部分的。

例子:baidu.com/lala

注意域名后的/lala,这个就是一个路由规则。路由规则可以使我们灵活的控制用户的访问范围和深度,在Laravel中甚至可以被用于权限管理哦。

创建路由

路由文件

比如说你的Laravel项目目录叫mySite,那么路由控制文件就在/mySite/app/Http/routes.php中

这个文件一开始只有一条规则,类似这样(如果你发现不止一条,没关系,反正不管有多少我们都会删掉重写的,任性(?^?) ):

点击下载“修复打印机驱动工具”;

这是一条定义首页的路由规则,就是这条规则使我们看到了Laravel的默认首页,也就是安装成功后的的界面。(类似下方)

Route::get(''/'', function () {    return view(''welcome'');});
登录后复制
无耻硬广进 Laravel 5视频教程地址 - 表严肃讲堂(可试听) 所有课程: biaoyansu.com

无耻硬广出

第一个路由~

Route::(''hello'', function(){    return ''Hello.''; });
登录后复制

解释:第一个传参是路由的地址(例:+baidu.com/hello),第二个传参是一个函数,聪明的你一定能猜到了(mua~)这个函数就是当路由匹配时触发执行的,如果你现在的测试地址是+localhost:8888那么,那么当你在浏览器地址栏输入+localhost:8888/hello然后来一个低调的回车你就会看到一个低调的“Hello.”

细心的同学可能发现我们使用的是return而不是echo,为什么可以直接打印字符串?Laravel就是这样的小背心,当他检测到你直接返回了字符串时会使用echo的方式,不止如此,当检测到返回的是数组时Laravel会将数组转换成json返回(暖男一枚,鉴定完毕)。

Route::get(''hello'', function () {    return [        ''greet'' => ''Hello'',        ''name''  => ''XiaoBeiXin''    ];});
登录后复制

会输出:

路由传参

如果我们想在Hello后加动态的添加人名怎么办?
这么干:

Route::get(''hello/{name}'', function($name){    return ''Hello '' . $name . ''.''; });
登录后复制

地址栏传参localhost:8888/hello/LiMing

输出:

那么怎么输出一个HTML文件雷?

不着急,后面和View一起讲。

Laravel 5 基础教程 || 2.路由:链接与控制器的连接者 - 表严肃

Laravel 5 基础教程 || 2.路由:链接与控制器的连接者 - 表严肃

Laravel 5 基础教程 || 2.路由:链接与控制器的连接者 - 表严肃

教程目录

  • 1.安装与部署 - 表严肃
  • 2.路由:链接与控制器的连接者 - 表严肃
  • 3.控制器:任务的分发者 - 表严肃

直观的说,路由是用来解析地址栏中域名之后的部分的。

例子:baidu.com/lala

注意域名后的/lala,这个就是一个路由规则。路由规则可以使我们灵活的控制用户的访问范围和深度,在Laravel中甚至可以被用于权限管理哦。

创建路由

路由文件

比如说你的Laravel项目目录叫mySite ,那么路由控制文件就在/mySite/app/Http/routes.php

这个文件一开始只有一条规则,类似这样(如果你发现不止一条,没关系,反正不管有多少我们都会删掉重写的,任性(︶^︶) ):

这是一条定义首页的路由规则,就是这条规则使我们看到了Laravel的默认首页,也就是安装成功后的的界面。(类似下方)

Route::get(''/'', function () {
    return view(''welcome'');
});

无耻硬广进

  • Laravel 5视频教程地址 - 表严肃讲堂(可试听)
  • 所有课程: biaoyansu.com

无耻硬广出

第一个路由~

Route::get(''hello'', function()
{
    return ''Hello.''; 
});

解释:第一个传参是路由的地址(例:baidu.com/hello),第二个传参是一个函数,聪明的你一定能猜到了(mua~)这个函数就是当路由匹配时触发执行的,如果你现在的测试地址是localhost:8888那么,那么当你在浏览器地址栏输入localhost:8888/hello然后来一个低调的回车你就会看到一个低调的“Hello.”

1

细心的同学可能发现我们使用的是return而不是echo,为什么可以直接打印字符串?Laravel就是这样的小背心,当他检测到你直接返回了字符串时会使用echo的方式,不止如此,当检测到返回的是数组时Laravel会将数组转换成json返回(暖男一枚,鉴定完毕)。

Route::get(''hello'', function () {
	return [
    	''greet'' => ''Hello'',
    	''name''  => ''XiaoBeiXin''
    ];
});

会输出:

2

路由传参

如果我们想在Hello后加动态的添加人名怎么办?
这么干:

Route::get(''hello/{name}'', function($name)
{
    return ''Hello '' . $name . ''.''; 
});

地址栏传参localhost:8888/hello/LiMing

输出:
3

那么怎么输出一个HTML文件雷?

不着急,后面和View一起讲。

有问题请在下方评论,/撒花~

教程目录

  • 1.安装与部署 - 表严肃
  • 2.路由:链接与控制器的连接者 - 表严肃
  • 3.控制器:任务的分发者 - 表严肃

Laravel 5 系列教程二:路由,视图,控制器工作流程

Laravel 5 系列教程二:路由,视图,控制器工作流程

原文来自:https://jellybool.com/post/programming-with-laravel-5-routers-views-controllers-workflow

上一篇教程我们走了那么长的路,终于把Laravel安装好了,这一篇教程我们就要进入Laravel的神奇世界了,主要是讲解Laravel的Router,Views,Controllers的工作流程,目的也就是让大家明白Laravel在处理一个get请求的时候是如何工作的。

在开始之前,我们首先得将我们的服务器启动起来,如果你使用Laravel的artisan,你可以直接:

php artisan serve
登录后复制

然后访localhost:8000,就可以看到Laravel了

我这里还是使用Homestead:

homestead up
登录后复制

homestead 启动之后,我们就可以愉快开始写代码了。

Laravel 文件目录

然后访问我们上一节设置好的域名:blog.dev,也可以看到我们的Laravel。如果你在安装或者使用Homestead的时候遇到任何问题,都可以直接问我。

首先,对于一个新手来接触Laravel的时候,可能你会对Laravel的文件目录感觉到很困惑,因为实在是太多东西了,到底什么是Console,Events,Providers...一大堆东西在这里。

但是不用担心,我们后续的教程会陆续讲解相关的内容。

目前我们关心的是Http/这个文件夹,你可以就简单地记忆为这个文件夹就是用来出来http请求的,比如我们在访问blog.dev的时候,Laravel是怎么将那个可爱的页面响应给我们的?这个就可以在app/Http/routes.php这个文件里面找到,就像上图显示的一样:

Route::get(''/'', function () {    return view(''welcome'');});
登录后复制

这是什么意思呢?其实这里你可以这样理解:我们注册这样一个路由,当用户发送一个get请求(简单理解就是在浏览器地址栏中访问)的时候,什么样的get请求呢?也就是什么样的浏览地址呢?恩,就是网站的根目录,也就是当一个用户访问我们站点的根目录的时候,我们应该给用户什么样的响应呢?这里我们就直接执行一个函数function () {},这个函数里面就负责加载一个视图return view(''welcome'');,这个试图文件位于resources/views/welcome.blade.php,这里的试图文件后缀名blade.php可能会比较疑惑,因为Laravel使用的是blade的模板引擎,如果你接触过其他的模板引擎如Twig,Smarty等,对模板引擎的理解可能会清晰一点。但是如果你在这里还是不太明白,没有关系,我后续会有专门的课程介绍blade模板。现在需要记住的是:Laravel的模板文件就是blade.php结尾的。

你可以直接打开resources/views/welcome.blade.php这个文件来看,里面其实就是一些HTML代码,easy enough。

所以上面的路由注册其实就是负责解决访问blog.dev的时候的响应。那么我们来尝试一个Hello World简单的返回:

Route::get(''/'', function () {    return ''Hello World'';//    return view(''welcome'');});
登录后复制

回到浏览器,再次访问blog.dev,我们就会看到上面写的Hello World。

参数

试着传入参数,我们重新注册一个路由:

Route::get(''/'', function () {    return view(''welcome'');});Route::get(''user/{name}'', function ($name) {    return ''Hello ''.$name;});
登录后复制

上面第二个就是我们自己重新注册的路由,在路由中得变量用大括号{}包裹起来,然后在处理函数中接收这个参数,访问http://blog.dev/user/guys,可以看到下面的返回结果。

上面这个时候,我们如果访问http://blog.dev/user,这是报错的,因为这个路由期望你在后面输入一个变量$name,但是你并没有,所以会报错,我们可以通过可选参数来实现这个目的

可选参数:

Route::get(''user/{name?}'', function ($name = null) {    return ''Hello ''.$name;});
登录后复制

这个时候,再次访问http://blog.dev/user就不会报错了,但是貌似这个时候只返回了Hello,我们也可以设置一个默认值:

Route::get(''user/{name?}'', function ($name = ''JellyBool'') {    return ''Hello ''.$name;});
登录后复制

这个时候,如果我们没有输入$name这个变量,我们会返回 Hello JellyBool

使用控制器

上面注册的这些路由是直接使用了匿名函数来返回字符串或加载视图给我们,但是我们的控制器(controller)去哪里了呢?我们怎么使用控制器呢(controllers)?首先我们需要明白,在注册路由是使用控制器在Laravel中大概是这样写的:

Route::get(''/'',''ArticleController@index'');
登录后复制

我们将routes.php中原来的注册路由全部删掉,只保留上面这一行代码:这行代码的意思是,当用户请求我们的网站跟目录的时候,我需要找到ArticleController并执行它的index方法,接下来,我们就需要创建我们的ArticleController了:

在命令行中执行:

php artisan make:controller ArticleController
登录后复制

上一篇文章说过artisan这个工具很强大,他可以用来生成我们在开发当中需要的很多东西,给我们的开发带来了很多的便利,如果你花点时间慢慢适应一下,我敢肯定,你以后会爱上Laravel的,会爱上artisan的。这里只是使用了artisan得make:controller命令,其实artisan可以干的事情很多,我们在这个教程中会一一接触到,如果你迫不及待,可以直接看官方文档:

http://laravel.com/docs/5.1/artisan

上面的命令给我们在app/Http/Controllers/目录下生成了ArticleController.php,我们打开它来看看:

在这个文件里面,Laravel帮我们生成了一堆的方法:index(),show(),create()...等,然后我们刚刚在Router(routes.php文件)中注册的路由需要使用ArticleController的index方法,我们就在index()方法里面加载一个视图:

public function index()    {        return view(''articles.lists'');    }
登录后复制

创建视图文件

这个视图文件应该是位于resources/views/articles/lists.blade.php,但是在views文件夹当中,我们并没有articles/这个文件夹和lists.blade.php,所以我们需要手动创建之。

这里需要注意的是,Laravel的view()方法会默认从views文件夹查找视图文件,所以你不用在view()方法中加入resources/views这个路径,而且你也不用将blade.php写上,Laravel会自动处理这些事情,至于views()方法articles.lists中得.就使用了路径别名,你也可以使用/来写成这样articles/lists

创建好之后,在articles/lists.blade.php写入简单地HTML代码:

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/html"><head>    <meta charset="UTF-8">    <title>Article lists page</title>    </head><body><h1>这是文章列表页面</h1></body></html>
登录后复制

然后访问blog.dev/,我们就可以看到上面的模板内容了:

到这里,不知道你对Laravel的Router,Views,Controllers这三个的工作流程有没有一个清晰的认识,通常我们需要实现某个功能(或者说新创建一个页面)都是这样的:

1. 在routes.php中注册路由 ---> 2. 创建对于的控制器 ---> 3. 在控制器中得对于方法加载视图
登录后复制

对应得实际操作大概是这样的:

1. Route::get(''/'',''ArticleController@index'');2. php artisan make:controller ArticleController3. public function index()    {        return view(''articles.lists'');    }
登录后复制

下一节

关于Laravel的Router,Views,Controllers的工作流程就大概讲到这里,如果你有任何疑问,可以随时在评论里面问我。然后下一节的内容会讲以下的内容:

  • 数据库的配置和Laravel的Migration用法

  • 将变量传给视图文件

  • blade模板的基本用法

    最后:

    Happy Hacking

  • Laravel 5.2 二、HTTP路由、创建控制器 与 资源路由

    Laravel 5.2 二、HTTP路由、创建控制器 与 资源路由

    一、HTTP路由

    所有路由都定义在 App\Providers\RouteServiceProvider 类载入的 app/Http/routes.PHP文件中。

    1. 基本路由

    简单的 Laravel 路由只接受一个 URI 和一个闭包

    Highlighter sh-gutter">
    SyntaxHighlighter PHP"> PHP plain">Route::get(PHP string">'foo'PHP plain">, PHP keyword">function PHP plain">() {
    PHP spaces">    PHP keyword">return PHP string">'Hello,Laravel!'PHP plain">;
    PHP plain">});

    对于常见的 HTTP 请求,Laravel 有以下几种路由

    Highlighter sh-gutter">
    SyntaxHighlighter PHP">
    PHP plain">Route::get(PHP variable">$uriPHP plain">, PHP variable">$callbackPHP plain">); PHP comments">//响应 get 请求
    PHP plain">Route::post(PHP variable">$uriPHP plain">, PHP variable">$callbackPHP plain">); PHP plain">Route::put(PHP variable">$uriPHP plain">, PHP variable">$callbackPHP plain">); PHP plain">Route::patch(PHP variable">$uriPHP plain">, PHP variable">$callbackPHP plain">); PHP plain">Route::PHP functions">deletePHP plain">(PHP variable">$uriPHP plain">, PHP variable">$callbackPHP plain">); PHP plain">Route::options(PHP variable">$uriPHP plain">, PHP variable">$callbackPHP plain">); PHP plain">Route::match([PHP string">'get'PHP plain">, PHP string">'post'PHP plain">], PHP variable">$uriPHP plain">, PHP variable">$callbackPHP plain">); PHP comments">//响应 get,post 请求 PHP plain">Route::any(PHP string">'foo'PHP plain">, PHP variable">$callbackPHP plain">); PHP comments">//响应所有请求

    其中,$callback 可以是一个闭包,也可以是一个控制器方法。实际上,在开发中有不少情况是用作控制器方法的。

      

    2. 路由参数

    Highlighter sh-gutter">
    SyntaxHighlighter PHP">
    PHP comments">//单个路由参数 PHP plain">Route::get(PHP string">'user/{id}'PHP plain">, PHP keyword">function PHP plain">(PHP variable">$idPHP plain">) { PHP spaces">    PHP keyword">return PHP string">'User 'PHP plain">.PHP variable">$idPHP plain">; PHP plain">}); PHP comments">//多个路由参数 PHP plain">Route::get(PHP string">'posts/{post}/comments/{comment}'PHP plain">, PHP keyword">function PHP plain">(PHP variable">$postIdPHP plain">, PHP variable">$commentIdPHP plain">) { PHP spaces">    PHP comments">// PHP plain">}); PHP comments">//单个路由参数(可选) PHP plain">Route::get(PHP string">'user/{id?}'PHP plain">, PHP keyword">function PHP plain">(PHP variable">$id PHP plain">= 1) { PHP spaces">    PHP keyword">return PHP string">'User 'PHP plain">.PHP variable">$idPHP plain">; PHP plain">}); PHP comments">//多个路由参数(可选) PHP plain">Route::get(PHP string">'posts/{post}/comments/{comment?}'PHP plain">, PHP variable">$commentId PHP plain">= 1) { PHP spaces">    PHP comments">// PHP plain">}); PHP comments">//注意:多个参数时,只可以对最后一个参数设置可选,其他位置设置可选会解析错误 PHP comments">// 正则约束单个参数 PHP plain">Route::get(PHP string">'user/{name?}'PHP plain">, PHP keyword">function PHP plain">(PHP variable">$name PHP plain">= PHP string">'Jone'PHP plain">) { PHP spaces">    PHP keyword">return PHP variable">$namePHP plain">; where(PHP string">'name'PHP plain">, PHP string">'\w+'PHP plain">);  PHP comments">//约束参数为单词字符(数字、字母、下划线) PHP comments">// 正则约束多个参数 PHP plain">Route::get(PHP string">'user/{id}/{name}'PHP plain">, PHP keyword">function PHP plain">(PHP variable">$idPHP plain">, PHP variable">$namePHP plain">) { PHP spaces">    PHP comments">// where([PHP string">'id'  PHP string">'[0-9]+'PHP plain">, PHP string">'name'  PHP string">'[a-z]+'PHP plain">]);

      

    二、创建控制器

    使用 Artisan 命令创建 PHP artisan make:controller UserController 

    现在,在 app/Http/Controllers 这个控制器目录下就生成了 UserController.PHP 的控制器文件。

    三、高级路由

    1. 命名路由

    Highlighter sh-gutter">
    SyntaxHighlighter PHP">
    PHP comments">//命名闭包路由 PHP plain">Route:get(PHP string">'user'PHP plain">, PHP keyword">arrayPHP plain">(PHP string">'as'  PHP string">'alial'PHP plain">, PHP keyword">functionPHP plain">(){}); PHP comments">//或 name 方法链 PHP plain">Route:get(PHP string">'user'PHP plain">, PHP keyword">functionname(PHP string">'alias'PHP plain">); PHP comments">//命名控制器方法路由 PHP plain">Route:get(PHP string">'user'PHP plain">, PHP keyword">arrayPHP plain">(PHP string">'uses'  PHP string">'Admin\IndexController@index'PHP plain">, PHP string">'as'  PHP string">'alias'PHP plain">)); PHP comments">//或 name 方法链 PHP plain">Route:get(PHP string">'user'PHP plain">, PHP string">'Admin\IndexController@index'name(PHP string">'alias'PHP plain">));

    2. 路由分组

    2.1 路由前缀和命名空间

    例如,有两条指向控制器方法的路由

    Highlighter sh-gutter">
    SyntaxHighlighter PHP">
    PHP plain">Route::get(PHP string">'admin/login'PHP plain">, PHP string">'Admin\IndexController@login'PHP plain">); PHP plain">Route::get(PHP string">'admin/index'PHP plain">, PHP string">'Admin\IndexController@index'PHP plain">);

    拿第一条来说,

    参数一:PHP“ ),这个请求被映射到第二个参数中指定的控制器方法。注意,网站根目录是入口文件所在目录,在 Laravel 中就是 public 目录,配置服务器时最好也指向这里。

    参数二:方法。

    显然,两条路由的 URI 和 控制器方法 都有相同的部分,那么,启用路由分组可以提取出公共部分:

    Highlighter sh-gutter">
    SyntaxHighlighter PHP">
    PHP comments">// 第一个数组参数中,prefix 键定义 URI 的公共部分,namespace 键定义方法名(命名空间语法)的公共部分 PHP plain">Route::group(PHP keyword">arrayPHP plain">(PHP string">'prefix'  PHP string">'admin'PHP plain">, PHP string">'namespace'  PHP string">'Admin'PHP plain">), PHP keyword">functionPHP plain">(){ PHP spaces">    PHP plain">Route::get(PHP string">'login'PHP plain">, PHP string">'IndexController@login'PHP plain">); PHP spaces">    PHP plain">Route::get(PHP string">'index'PHP plain">, PHP string">'IndexController@index'PHP plain">); PHP plain">});

    2.2 资源路由

    资源路由就是映射到资源控制器的路由,Laravel 资源控制器内置了对资源增删改查的 7 个方法以及 7 条路由。

    首先,创建资源控制器 ArticleController

    Highlighter sh-gutter">
    SyntaxHighlighter PHP">
    PHP plain">PHP artisan make:controller Admin/ArticleController  --resource

    这样就生成了资源控制器在 app/Http/Controllers/Admin/ArticleController.PHP 文件(Admin 文件夹不存在时会自动创建),内置的 7 个方法如下 :

    Highlighter sh-gutter">
    SyntaxHighlighter PHP">
    PHP plain">PHP PHP keyword">namespace PHP plain">App\Http\Controllers\Admin; PHP keyword">use PHP plain">Illuminate\Http\Request; PHP keyword">use PHP plain">App\Http\Requests; PHP keyword">use PHP plain">App\Http\Controllers\Controller; PHP keyword">class PHP plain">LinksController PHP keyword">extends PHP plain">Controller PHP plain">{ PHP spaces">    PHP comments">/** PHP spaces">     PHP comments">* 显示一个资源的列表 PHP spaces">     PHP comments">* PHP spaces">     PHP comments">* @return \Illuminate\Http\Response PHP spaces">     PHP comments">*/ PHP spaces">    PHP keyword">public PHP keyword">function PHP plain">index() PHP spaces">    PHP plain">{ PHP spaces">        PHP comments">// PHP spaces">    PHP plain">} PHP spaces">    PHP comments">/** PHP spaces">     PHP comments">* 显示一个表单来创建一个新的资源 PHP spaces">     PHP comments">* PHP spaces">     PHP comments">* @return \Illuminate\Http\Response PHP spaces">     PHP comments">*/ PHP spaces">    PHP keyword">public PHP keyword">function PHP plain">create() PHP spaces">    PHP plain">{ PHP spaces">        PHP comments">// PHP spaces">    PHP plain">} PHP spaces">    PHP comments">/** PHP spaces">     PHP comments">* 保存最新创建的资源 PHP spaces">     PHP comments">* PHP spaces">     PHP comments">* @param  \Illuminate\Http\Request  $request PHP spaces">     PHP comments">* @return \Illuminate\Http\Response PHP spaces">     PHP comments">*/ PHP spaces">    PHP keyword">public PHP keyword">function PHP plain">store(Request PHP variable">$requestPHP plain">) PHP spaces">    PHP plain">{ PHP spaces">        PHP comments">// PHP spaces">    PHP plain">} PHP spaces">    PHP comments">/** PHP spaces">     PHP comments">* 显示指定的资源 PHP spaces">     PHP comments">* PHP spaces">     PHP comments">* @param  int  $id PHP spaces">     PHP comments">* @return \Illuminate\Http\Response PHP spaces">     PHP comments">*/ PHP spaces">    PHP keyword">public PHP keyword">function PHP plain">show(PHP variable">$idPHP plain">) PHP spaces">    PHP plain">{ PHP spaces">        PHP comments">// PHP spaces">    PHP plain">} PHP spaces">    PHP comments">/** PHP spaces">     PHP comments">* 显示一个表单来编辑指定的资源 PHP spaces">     PHP comments">* PHP spaces">     PHP comments">* @param  int  $id PHP spaces">     PHP comments">* @return \Illuminate\Http\Response PHP spaces">     PHP comments">*/ PHP spaces">    PHP keyword">public PHP keyword">function PHP plain">edit(PHP variable">$idPHP plain">) PHP spaces">    PHP plain">{ PHP spaces">        PHP comments">// PHP spaces">    PHP plain">} PHP spaces">    PHP comments">/** PHP spaces">     PHP comments">* 更新指定的资源 PHP spaces">     PHP comments">* PHP spaces">     PHP comments">* @param  \Illuminate\Http\Request  $request PHP spaces">     PHP comments">* @param  int  $id PHP spaces">     PHP comments">* @return \Illuminate\Http\Response PHP spaces">     PHP comments">*/ PHP spaces">    PHP keyword">public PHP keyword">function PHP plain">update(Request PHP variable">$requestPHP plain">, PHP variable">$idPHP plain">) PHP spaces">    PHP plain">{ PHP spaces">        PHP comments">// PHP spaces">    PHP plain">} PHP spaces">    PHP comments">/** PHP spaces">     PHP comments">* 删除指定的资源 PHP spaces">     PHP comments">* PHP spaces">     PHP comments">* @param  int  $id PHP spaces">     PHP comments">* @return \Illuminate\Http\Response PHP spaces">     PHP comments">*/ PHP spaces">    PHP keyword">public PHP keyword">function PHP plain">destroy(PHP variable">$idPHP plain">) PHP spaces">    PHP plain">{ PHP spaces">        PHP comments">// PHP spaces">    PHP plain">} PHP plain">}

    然后,定义资源路由 。这里我还是选择在路由分组下定义,定义一条就好

    Highlighter sh-gutter">
    SyntaxHighlighter PHP">
    PHP plain">Route::group(PHP keyword">arrayPHP plain">(PHP string">'prefix'  PHP string">'admin'PHP plain">, PHP keyword">functionPHP plain">(){ PHP spaces">    PHP plain">Route::get(PHP string">'login'PHP plain">, PHP string">'IndexController@login'PHP plain">); PHP spaces">    PHP plain">Route::get(PHP string">'index'PHP plain">, PHP string">'IndexController@index'PHP plain">); PHP spaces">    PHP comments">// 资源路由 PHP spaces">    PHP plain">Route::resource(PHP string">'article'PHP plain">, PHP string">'ArticleController'PHP plain">); PHP plain">});

      

    最后,查看路由。有了资源控制器 和 资源路由,就可以看一下对以上 7 个方法的 HTTP 请求方式了。

    使用 Artisan 命令 方法、中间件都罗列出来了。

    总结

    以上是小编为你收集整理的Laravel 5.2 二、HTTP路由、创建控制器 与 资源路由全部内容。

    如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

    Laravel相关文章

    php – Laravel 5自定义验证重定向
    我有一个网站,包括2个不同的登录表单,2个位置,一个在导航栏上,另一个是登录页面,将在系统捕获未登记的访问者时使用.我可以问一下我在LoginRequest.php中做错了什么,如果登录过程中出现任何类型的错误,我会设置一个重定向到自定义登录页面的条件?我的代码如下:<?phpnamespaceApp
    php – 在Laravel 4中上传多个文件
    这是我用于上传多个文件的控制器代码,我从GoogleChrome上的’postman’restAPI客户端传递密钥和值.我正在从邮递员添加多个文件,但只有1个文件正在上传.publicfunctionpost_files(){$allowedExts=array("gif","jpeg","jpg","png","txt","pdf","doc
    laravel 使用测试工厂Factory添加测试数据
    1. 只需要在 config\app.php 文件中加入 faker_locale=>'zh_CN' ,可生成部分中文数据,如nameaddress 等 2. 时间生成,当月随机时间$faker->dateTimeThisMonth()3. 随机数rand(1,5)'id'=>$faker->randomElement(['1','2','3'])
    mysql – Laravel 5.1迁移和种子无法截断外键约束中引用的表
    我正在尝试运行迁移(见下文)并为数据库播种,但是当我运行时phpartisanmigrate--seed我收到此错误:Migrationtablecreatedsuccessfully.Migrated:2015_06_17_100000_create_users_tableMigrated:2015_06_17_200000_create_password_resets_tableMigrated:2015_06_1
    php – 获取Eloquent模型关系的数组
    我正在尝试获取所有模型的关联数组.我有以下型号:classArticleextendsEloquent{protected$guarded=array();publicstatic$rules=array();publicfunctionauthor(){return$this->belongsTo('Author');}publicfunctionc
    php – 使用Laravel中的Eloquent检索关系关系
    我有一个包含以下表和关系的数据库:租房广告1-1Carm-1型号m-1品牌如果我想要检索广告,我可以简单地使用:Advert::find(1);如果我想要汽车的细节,我可以使用:Advert::find(1)->with('Car');但是,如果我还想要模型的细节(跟随与Car的关系),语法是什么,以下不起作用:Advert:
    javascript – 在Laravel 5.3中使用Vue.js.
    在5.3之前的Laravel项目中,我使用脚本标记使用了Vue.js,如下所示:<scripttype="text/javascript"src="../js/vue.js"></script>然后我会创建一个特定于该页面的Vue实例,如下所示:<script>newVue({el:'#app',data:{message:&#03
    什么是运行Laravel的命令’php artisan serve’?
    我似乎不明白为什么我们需要运行一个带有phpartisan服务的Laravel应用程序而不是用Apache或nginx运行它.我知道在开发过程中,我们使用artisan来启动站点,在部署到服务器之后,您使用Web服务器来加载站点.什么是首先在工匠中运行应用程序的用途?解决方法:serve命令只是PHPBuilt-in
    • • php – Laravel 5自定义验证重定向
    • • php – 在Laravel 4中上传多个文件
    • • laravel 使用测试工厂Factory添加测试数
    • • mysql – Laravel 5.1迁移和种子无法
    • • php – 获取Eloquent模型关系的数组
    • • php – 使用Laravel中的Eloquent检索关
    • • javascript – 在Laravel 5.3中使用Vu
    • • 什么是运行Laravel的命令’php artisan
    • • php – Laravel“没有预定的命令可以
    • • php – laravel 5控制器中的CSV导出
    pythonjavaC#AndroidrjQueryIOSdjangolinuxJSON路由器dockerClaravelPostgresqlexcelmongodbdartoraclexml.NetUbuntuASP.NETdatabasenumpyStringandroid-stvisual-stufunctioncentoswin10kubernetesaspShellSQLiterubyC++前端perl操作
    • 友情链接:
    • 菜鸟教程
    • 前端之家
    • 编程小课
    • 小编
    • -
    • 我要投稿
    • -
    • 广告合作
    • -
    • 联系我们
    • -
    • 免责声明
    • -
    • 网站地图
    版权所有 © 2018 小编 闽ICP备13020303号-8
    微信公众号搜索 “ 程序精选 ” ,选择关注!
    微信公众号搜"程序精选"关注
    微信扫一扫可直接关注哦!

    今天关于laravel第二讲:路由的定义及与控制器绑定laravel路由机制的介绍到此结束,谢谢您的阅读,有关Laravel 5 基础教程 || 2.路由:链接与控制器的连接者、Laravel 5 基础教程 || 2.路由:链接与控制器的连接者 - 表严肃、Laravel 5 系列教程二:路由,视图,控制器工作流程、Laravel 5.2 二、HTTP路由、创建控制器 与 资源路由等更多相关知识的信息可以在本站进行查询。

    本文标签: