検索
ホームページPHPフレームワークLaravelLaravel8のルーティングとコントローラーについて話しましょう

この記事では、laravel に関する関連知識を提供します。主に、ルーティング グループ、コントローラーへのジャンプ、ポスト ルーティング、Ajax ルーティングやその他の関連コンテンツなど、ルーティングとコントローラーに関連する問題を紹介します。以下をご覧ください。皆さんのお役に立てれば幸いです。

Laravel8のルーティングとコントローラーについて話しましょう

[関連する推奨事項: laravel ビデオチュートリアル]

laravel アクセス パスは:
1) ルーティング - コントローラー - ページ/Output
2) ルーティング — 匿名関数 — ページ/出力

1. 現在のルートをすべて表示

現在のプロジェクトのルート ディレクトリを入力し、cmd
を実行するか、IDE を使用します。ショートカット キー ALT F12

 php artisan route:list

Laravel8のルーティングとコントローラーについて話しましょう

を使用してターミナルを自動化します。 2. さまざまなルート

routes/web.php ファイル

私のドメイン名は www.la.com です。実際の状況に応じて選択してください

##1. ビューにジャンプします

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

View ディレクトリの場所: resource/views 。HTML コンテンツも保存されます。

view() はヘルパー関数です。view(‘welcome’) は、Laravel を初めて起動したときに表示されるウェルカム ページである welcome.blade.php ビューにジャンプすることを意味します。

ブラウザのアドレスバーに www.la.com/ と入力すると、実行結果は


Laravel8のルーティングとコントローラーについて話しましょう

2 になります。直接出力

Route::get('ok', function () {
    echo "hello world";});

Laravel8のルーティングとコントローラーについて話しましょう

3. パラメーターを使用したルート

dump() は、laravel の補助関数であり、データを出力するために使用されます

1)単一パラメータ

Route::get('show/{a}', function ($a) {
    dump($a);});

ブラウザは http://www.la.com/show/1

を実行します。 結果: "1"
注: これは文字列です

2)複数のパラメータ

Route::get('show/{a}/{b}', function ($a,$b) {
   echo $a.','.$b;});

実行中のブラウザ: http://www.la.com/show/1/hello

結果: 1,hello

4. ルーティング パラメータが追加されました 制限された正規表現

Route::get('user/{name}/{age}', function ($name,$age) {
 echo $name.' '.$age; //直接输出 
 })->where('age','\d+')->where('name','[a-zA-Z]+');

上記の制限は、age パラメーターは数字のみを受け入れ、name パラメーターは大文字と小文字のみを受け入れることを意味します。

条件が満たされない場合、結果は次のようになります: 404 NOT FOUND

ブラウザで実行: http://www.la.com/user/zhangsan/18

結果: zhangshan 18

5. ルーティング グループ

1) 最初の書き方 Route::group(array('prefix'=>'user'),function(){});

Route::group(array('prefix'=>'user'),function(){
    Route::get('/index', function () {
        echo 'index';
    });
    Route::get('/add', function () {
        echo 'add';
    });});

実行中のブラウザ:

    http://www.la.com/user/index
  • http://www.la.com/user/ add
Result:

    index
  • add
2) Route::prefix( を記述する 2 番目の方法'user') ->group(function(){});

Route::prefix('user')->group(function(){
    Route::get('/index', function () {
        echo 'index';
    });
    Route::get('/add', function () {
        echo 'add';
    });});

6. コントローラーにジャンプ

1) コントローラーを作成し、メソッドを記述します

プロジェクトのルートディレクトリで実行するには

php artisan make:controller TestController

Laravel8のルーティングとコントローラーについて話しましょう

<?phpnamespace  App\Http\Controllers;use Illuminate\Http\Request;class TestController extends Controller{
    public function hello(){
        echo "TestController的hello方法";
    }}
2) routingを記述します

config/web の先頭に

use App\Http\Controllers\TestController;
を追加します。 php を作成し、 routing

Route::get('/hello',[TestController::class,'hello']);//跳到控制器的方法
実行中のブラウザ: http://www.la.com/hello

結果:

Laravel8のルーティングとコントローラーについて話しましょう

7.POST routing

in laravel csrf 攻撃を防ぐためには、すべての投稿フォームに @csrf という文を記述する必要があります。詳細については、クリックして私の他の記事を読むことができます

    まず、
  1. views/user Folderを入力しますAdd a add.blade.phpView
Code inside:

nbsp;html>
    <title>测试POST提交</title>
    
        @csrf         name:              
    Add Route
  1. use Illuminate\Http\Request;Route::prefix('user')->group(function(){
        Route::get('/add', function () {
           return view('user.add');
        });
        Route::post('/insert', function (Request $request) {
            dump($request->all());
            echo "post路由验证成功";
        });});

view('user.add') は、resources/views ディレクトリのユーザー フォルダーにビューを追加することを意味します。 (resources/view がデフォルトのパスです)
$request->all()すべてのリクエストパラメータを取得
dump()データを印刷
Laravel8のルーティングとコントローラーについて話しましょう

    Test
  1. まず、http://www.la.com/user/insert を直接入力すると確実に機能せず、エラーが報告されます (GET メソッドはこのルートではサポートされていません) . サポートされているメソッド: POST .)。
    Postman が http://www.la.com/user/insert と入力すると投稿の送信が失敗し、419 が返される | ページの有効期限が切れました

    Laravel8のルーティングとコントローラーについて話しましょう
したがって、最初に http:/ を入力します。ブラウザ /www.la.com/user/add に、任意の名前を入力して送信します。


Laravel8のルーティングとコントローラーについて話しましょう#8.Ajax ルーティング

#ヘッダーを追加する必要があります

js を介してトークンを渡します。ここでは name="_token" で任意の名前を選択できます

headers: {
‘X-CSRF-TOKEN’: $(‘meta[name="_token"]’).attr(‘content’)
},

nbsp;html>
    <meta>
    <title>CSRF</title>
    <meta><script></script><script>
    $.ajax({
        url: "http://www.la.com/index",//本页面
        type: "POST",
        data: {
            name:"名字"
        },
        headers: {
            &#39;X-CSRF-TOKEN&#39;: $(&#39;meta[name="_token"]&#39;).attr(&#39;content&#39;)
        },
        success: function (data) {
            console.log("200");
        }
    });</script>

9.带别名的路由

别名路由就是给某一个路由起一个别名,直接使用使用原名可以访问路由,但直接使用别名不能访问这个路由,同时在其他页面调用别名可以访问这个路由。

Route::get('user/profile',function(){ 
	return 'my url:'.route('profile');})->name('profile'); 	//创建一个路由 user/profile,这个路由的作用是返回路由 profile 的 RUL 地址,并给这个路由起一个别名 profile Route::get('redirect',function(){ 
	return redirect()->route('profile'); }); 	//创建一个名为 redirect 的路由,这个路由的作用是跳转到路由 profile。

route() 生成完整的URL
redirect()->route(‘profile’); //重定向命名路由

在浏览器中运行 www.la.com/user/profile
结果:Laravel8のルーティングとコントローラーについて話しましょう
在浏览器中运行www.la.com/profile
结果:404 NOT FOUND

在浏览器中运行www.la.com/redirect
结果:Laravel8のルーティングとコントローラーについて話しましょう

10.命名空间路由

之前写的控制器 Controller 都直接写在 Http\Controllers 文件夹之中,但实际情况是控制器也会分类,比如与管理员相关的操作会在 Controllers 中,再建一个文件夹 Admin,然 后把所有关于管理员的控制器类都放在这个文件夹中。如果这样的话,就要添加名称空间。

  1. 创建控制器
    方法一:使用phpartisan
php artisan make:controller Admin\IndexController

使用这种方法创建的控制器,自动加载名称空间,如下图所示
观察与之前创建控制器php artisan make:controller TestController的区别
Laravel8のルーティングとコントローラーについて話しましょう
方法二:复制粘贴其他类
在Controllers文件夹下创建Admin文件夹,复制之前创建的控制器TestController,照着上图修改。

命名空间 namespace App\Http\Controllers\Admin;
添加类引用 use App\Http\Controllers\Controller;

  1. 控制器添加 index方法
public function index(){
       return "Admin文件夹下的IndexController中的index方法";}
  1. 写路由
    web.php文件
use App\Http\Controllers\Admin\IndexController;Route::group(['namespace'=>'Admin'],function(){
    Route::get('admin',[IndexController::class,'index']);//管理员的主页
    Route::get('admin/user',[IndexController::class,'index']);//管理员用户相关
    Route::get('admin/goods',[IndexController::class,'index']);//商品相关});

浏览器输地址
http://www.la.com/admin
http://www.la.com/admin/user
http://www.la.com/admin/goods
结果都是一样

【相关推荐:laravel视频教程

以上がLaravel8のルーティングとコントローラーについて話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はCSDNで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
laravel单点登录方法详解laravel单点登录方法详解Jun 15, 2022 am 11:45 AM

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于单点登录的相关问题,单点登录是指在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统,下面一起来看一下,希望对大家有帮助。

一起来聊聊Laravel的生命周期一起来聊聊Laravel的生命周期Apr 25, 2022 pm 12:04 PM

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于Laravel的生命周期相关问题,Laravel 的生命周期从public\index.php开始,从public\index.php结束,希望对大家有帮助。

laravel中guard是什么laravel中guard是什么Jun 02, 2022 pm 05:54 PM

在laravel中,guard是一个用于用户认证的插件;guard的作用就是处理认证判断每一个请求,从数据库中读取数据和用户输入的对比,调用是否登录过或者允许通过的,并且Guard能非常灵活的构建一套自己的认证体系。

laravel中asset()方法怎么用laravel中asset()方法怎么用Jun 02, 2022 pm 04:55 PM

laravel中asset()方法的用法:1、用于引入静态文件,语法为“src="{{asset(‘需要引入的文件路径’)}}"”;2、用于给当前请求的scheme前端资源生成一个url,语法为“$url = asset('前端资源')”。

实例详解laravel使用中间件记录用户请求日志实例详解laravel使用中间件记录用户请求日志Apr 26, 2022 am 11:53 AM

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于使用中间件记录用户请求日志的相关问题,包括了创建中间件、注册中间件、记录用户访问等等内容,下面一起来看一下,希望对大家有帮助。

laravel中间件基础详解laravel中间件基础详解May 18, 2022 am 11:46 AM

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于中间件的相关问题,包括了什么是中间件、自定义中间件等等,中间件为过滤进入应用的 HTTP 请求提供了一套便利的机制,下面一起来看一下,希望对大家有帮助。

laravel的fill方法怎么用laravel的fill方法怎么用Jun 06, 2022 pm 03:33 PM

在laravel中,fill方法是一个给Eloquent实例赋值属性的方法,该方法可以理解为用于过滤前端传输过来的与模型中对应的多余字段;当调用该方法时,会先去检测当前Model的状态,根据fillable数组的设置,Model会处于不同的状态。

laravel路由文件在哪个目录里laravel路由文件在哪个目录里Apr 28, 2022 pm 01:07 PM

laravel路由文件在“routes”目录里。Laravel中所有的路由文件定义在routes目录下,它里面的内容会自动被框架加载;该目录下默认有四个路由文件用于给不同的入口使用:web.php、api.php、console.php等。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境