Laravel路由和控制器的绑定

路由和控制器的关系

路由文件地址在\app\Http\routes.php,我们来看两种不同的路由。


1

2

3

4

5

6

7

8


Route::get(‘/‘function () {

    return view(‘welcome‘);

});

Route::get(‘/hi‘function () {

    return ‘hello world‘;

});

以上均为绑定匿名函数的路由,虽然可以返回视图,也可以返回字符串,但本质都是一样的。


1

2


Route::get(‘/blog‘,‘[email protected]‘);

Route::get(‘/post/{slug}‘,‘[email protected]‘);

这两种是绑定控制器的路由,控制器类BlogController下有两个函数,index和showPost,可以调用。

那么问题来了,究竟应该选用哪种?

你不可能把复杂的业务逻辑都写在一个匿名函数里,所以你要学会新建控制器。

1 Route::get(‘/mvc‘‘[email protected]‘);  

一.添加新控制器

控制器文件夹地址在Laravel文件夹下\app\Http\Controllers,我们继续使用artisan控制台创建一个新控制器

1 php artisan make:controller MyController

然后,回到控制器目录,一份新的MyController.php文件被创建了,代码如下:


1

2

3

4

5

6

7

8

9

10

11

12


<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;

class MyController extends Controller

{

    //

}

我们修改MyController类,同时再创建一个视图。


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15


<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;

class MyController extends Controller

{

    public function hello()

    {

        return View(‘myview‘);

    }

}

如果这么写,就意味着一旦用户访问URL:laravel/public/mvc,路由就会交给MyController控制器的hello函数,hello函数返回myview视图,即返回myview.blade.php

我们看看myview.blade.php的代码


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17


@extends(‘layouts.app‘)

@section(‘content‘)

<div class="container">

    <div class="row">

        <div class="col-md-10 col-md-offset-1">

            <div class="panel panel-default">

                <div class="panel-heading">{{ $d1 }}</div>

                <div class="panel-body">

                    this is my view!

                </div>

            </div>

        </div>

    </div>

</div>

@endsection

这里的{{ $d1 }}希望用一个变量的值来代替,所以,我们把MyController控制器修改为


1

2

3

4

5

6

7


class MyController extends Controller

{

    public function hello()

    {

        return View(‘myview‘,[‘d1‘=>‘a1‘]);

    }

}

  

时间: 2024-10-23 17:02:44

Laravel路由和控制器的绑定的相关文章

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

Laravel教程 二:路由,视图,控制器工作流程 此文章为原创文章,未经同意,禁止转载. View Controller 上一篇教程我们走了那么长的路,终于把Laravel安装好了,这一篇教程我们就要进入Laravel的神奇世界了,主要是讲解Laravel的Router,Views,Controllers的工作流程,目的也就是让大家明白Laravel在处理一个get请求的时候是如何工作的. 在开始之前,我们首先得将我们的服务器启动起来,如果你使用Laravel的artisan,你可以直接: p

原来 laravel 路由 参数可以为可选。。。 很灵活

基本路由 您的应用程序的绝大多数路由将在 app/routes.php 文件中定义.Laravel 中最简单的路由由一个 URI 和一个闭包调用组成. 基本 GET 路由 复制代码代码如下: Route::get('/', function(){return 'Hello World';}); 基本 POST 路由 复制代码代码如下: Route::post('foo/bar', function(){return 'Hello World';}); 注册一个路由以响应所有 HTTP 方法 复制

laravel路由基础

基础: 所有的laravel路由都定义在 app/Http/routes.php 这个文件里,会被框架自带加载.简单的路由会接受一个URI和一个Closure类. Route::get('foo', function () { return 'Hello World'; }); 默认的routes.php 是被RouteServiceProvider所加载进入框架的,允许自定义路由和响应 Route::get($uri, $callback); Route::post($uri, $callba

laravel 路由使用(二)

我们在第一篇文章已经描述了在laravel中一些简单路由的使用. 那么我们来回顾一下 1,基础路由 2,多请求路由 3,路由传递参数 4,路由限制 5,控制器路由 有了第一篇文章的基础之后呢,我们可以学习以下的知识点 但是,经过上篇文章呢,可能会有的人有意见,为什么呢? 关于laravel的路由定义,很多人看到后有一个疑惑: 每条地址规则都要定义路由,岂不是很累? 这个问题确实是个问题,不过,laravel给了我们一个折中的方案----资源路由. 资源路由 控制器路由我认为主要是解决路由定义繁杂

laravel 路由修改不起作用解决方案

起由:今天帮朋友解决了下bug,bug就是它使用laravel时候,怎样修改路由文件,都没有发生变化,但是故意在routes.php中增加语法错误时又具有错误,因此想到了可能是这个项目使用的laravel的路由缓存,而且其路由文件中就有很多很多的路由,因此更加断定项目使用了路由缓存. 解决方案:每次在修改路由文件的时候,在项目中打开命令行,执行php artisan route:cache进行重新缓存,这样修改的路由文件才可以起作用 laravel路由缓存的优点: 当路由定义特别多的时候,每次进

路由与控制器

路由与控制器 因为工作需要,最近再次学习了node,上一次学习node是2014年,纯粹是个人兴趣,学了入门之后没有运用,加上赶别的项目又不了了之.这次正好捡起来.废话不多说,这里的MEAN指的是Mongodb.Express.Angular和Node. 通过整个项目逐步整合在一起.MEAN栈最大的特色不是运用了哪些框架或第三方,而是前后端都是一种语言,即JavaScript.早些年我也是对node抱着疑态度,觉得这个页面上操作dom的脚本语言,能扛得起后端那么多模块吗?但怀疑不防多了解一下,才

Nodejs之MEAN栈开发(一)---- 路由与控制器

因为工作需要,最近再次学习了node,上一次学习node是2014年,纯粹是个人兴趣,学了入门之后没有运用,加上赶别的项目又不了了之.这次正好捡起来.废话不多说,这里的MEAN指的是Mongodb.Express.Angular和Node. 通过整个项目逐步整合在一起.MEAN栈最大的特色不是运用了哪些框架或第三方,而是前后端都是一种语言,即JavaScript.早些年我也是对node抱着疑态度,觉得这个页面上操作dom的脚本语言,能扛得起后端那么多模块吗?但怀疑不防多了解一下,才决定写这个系列

lavarel从零开始-第三弹(路由,控制器,视图)

routes/web.php写路由 基本路由: Route::get('/', function () { return view('welcome');}); Route::get('two',function(){ return view('two');}); Route::get('three',function(){ return view('three');}); Route::get('four',function(){ return 'four';});多请求路由: Route::

laravel路由无法访问,报404,No query results for model [App\Models\...]

今天遇到了一个问题,在routes/web.php中配置了路由,但始终无法访问该路由,一直报404. Route::resource('gift_packs', 'GiftPacksController', ['only' => ['index', 'show', 'create', 'store', 'update', 'edit', 'destroy']]); Route::get('gift_packs/test', '[email protected]')->name('gift_pa