本篇文章给大家带来的内容是关于Laravel5.2中HTTP路由、创建控制器和资源路由的介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
一、HTTP路由
所有路由都定义在 App\Providers\RouteServiceProvider 类载入的 app/Http/routes.php文件中。
1. 基本路由
简单的 Laravel 路由只接受一个 URI 和一个闭包
Route::get('foo', function () { return 'Hello, Laravel!'; });
对于常见的 HTTP 请求,Laravel 有以下几种路由
Route::get($uri, $callback); //响应 get 请求 Route::post($uri, $callback); Route::put($uri, $callback); Route::patch($uri, $callback); Route::delete($uri, $callback); Route::options($uri, $callback); Route::match(['get', 'post'], $uri, $callback); //响应 get, post 请求 Route::any('foo', $callback); //响应所有请求
其中,$callback 可以是一个闭包,也可以是一个控制器方法。实际上,在开发中有不少情况是用作控制器方法的。
2. 路由参数
//单个路由参数 Route::get('user/{id}', function ($id) { return 'User '.$id; }); //多个路由参数 Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) { // }); //单个路由参数(可选) Route::get('user/{id?}', function ($id = 1) { return 'User '.$id; }); //多个路由参数(可选) Route::get('posts/{post}/comments/{comment?}', function ($postId, $commentId = 1) { // }); //注意:多个参数时,只可以对最后一个参数设置可选,其他位置设置可选会解析错误 // 正则约束单个参数 Route::get('user/{name?}', function ($name = 'Jone') { return $name; })->where('name', '\w+'); //约束参数为单词字符(数字、字母、下划线) // 正则约束多个参数 Route::get('user/{id}/{name}', function ($id, $name) { // })->where(['id' => '[0-9]+', 'name' => '[a-z]+']);
二、创建控制器
使用 Artisan 命令创建 php artisan make:controller UserController
现在,在 app/Http/Controllers 这个控制器目录下就生成了 UserController.php 的控制器文件。
三、高级路由
1. 命名路由
//命名闭包路由 Route:get('user', array('as' => 'alial', function(){}); //或 name 方法链 Route:get('user', function(){})->name('alias'); //命名控制器方法路由 Route:get('user', array('uses' => 'Admin\IndexController@index', 'as' => 'alias')); //或 name 方法链 Route:get('user', 'Admin\IndexController@index')->name('alias'));
2. 路由分组
2.1 路由前缀和命名空间
例如,有两条指向控制器方法的路由
Route::get('admin/login', 'Admin\IndexController@login'); Route::get('admin/index', 'Admin\IndexController@index');
拿第一条来说,
参数一:admin/login 表示这个 URI 在请求网站根目录下的 admin/login 资源,完整地址就是 http://域名/admin/login (这里开启了 Apache 的路由重写,隐藏了 “index.php“ ),这个请求被映射到第二个参数中指定的控制器方法。注意,网站根目录是入口文件所在目录,在 Laravel 中就是 public 目录,配置服务器时最好也指向这里。
参数二:Admin\IndexController@login 表示这个控制器方法是在 App\Http\Controllers 命名空间下的,连起来就是 App\Http\Controllers\Admin\IndexController 控制器里的 login 方法。
显然,两条路由的 URI 和 控制器方法 都有相同的部分,那么,启用路由分组可以提取出公共部分:
// 第一个数组参数中,prefix 键定义 URI 的公共部分,namespace 键定义方法名(命名空间语法)的公共部分 Route::group(array('prefix' => 'admin', 'namespace' => 'Admin'), function(){ Route::get('login', 'IndexController@login'); Route::get('index', 'IndexController@index'); });
2.2 资源路由
资源路由就是映射到资源控制器的路由,Laravel 资源控制器内置了对资源增删改查的 7 个方法以及 7 条路由。
首先,创建资源控制器 ArticleController
php artisan make:controller Admin/ArticleController --resource
这样就生成了资源控制器在 app/Http/Controllers/Admin/ArticleController.php 文件(Admin 文件夹不存在时会自动创建),内置的 7 个方法如下 :
<?php namespace App\Http\Controllers\Admin; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; class LinksController extends Controller { /** * 显示一个资源的列表 * * @return \Illuminate\Http\Response */ public function index() { // } /** * 显示一个表单来创建一个新的资源 * * @return \Illuminate\Http\Response */ public function create() { // } /** * 保存最新创建的资源 * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // } /** * 显示指定的资源 * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * 显示一个表单来编辑指定的资源 * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * 更新指定的资源 * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * 删除指定的资源 * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } }
然后,定义资源路由 。这里我还是选择在路由分组下定义,定义一条就好
Route::group(array('prefix' => 'admin', 'namespace' => 'Admin'), function(){ Route::get('login', 'IndexController@login'); Route::get('index', 'IndexController@index'); // 资源路由 Route::resource('article', 'ArticleController'); });
最后,查看路由。有了资源控制器 和 资源路由,就可以看一下对以上 7 个方法的 HTTP 请求方式了。
使用 Artisan 命令 php artisan route:list 列出当前的所有路由,请求方式、URI、控制器方法、中间件都罗列出来了。
Atas ialah kandungan terperinci Laravel5.2中HTTP路由、创建控制器和资源路由的介绍(附代码). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Perbandingan antara Laravel dan Python dalam persekitaran pembangunan dan ekosistem adalah seperti berikut: 1. Persekitaran pembangunan Laravel adalah mudah, hanya PHP dan komposer diperlukan. Ia menyediakan pelbagai pakej lanjutan seperti Laravelforge, tetapi penyelenggaraan pakej lanjutan mungkin tidak tepat pada masanya. 2. Persekitaran pembangunan Python juga mudah, hanya Python dan PIP diperlukan. Ekosistem adalah besar dan meliputi pelbagai bidang, tetapi pengurusan versi dan pergantungan mungkin kompleks.

Bagaimanakah Laravel memainkan peranan dalam logik backend? Ia memudahkan dan meningkatkan pembangunan backend melalui sistem penghalaan, eloquentorm, pengesahan dan kebenaran, acara dan pendengar, dan pengoptimuman prestasi. 1. Sistem penghalaan membolehkan definisi struktur URL dan logik pemprosesan permintaan. 2.eloquentorm memudahkan interaksi pangkalan data. 3. Sistem pengesahan dan kebenaran adalah mudah untuk pengurusan pengguna. 4. Acara dan pendengar melaksanakan struktur kod yang ditambah dengan longgar. 5. Pengoptimuman prestasi meningkatkan kecekapan aplikasi melalui caching dan beratur.

Populariti Laravel termasuk proses pembangunan mudahnya, menyediakan persekitaran pembangunan yang menyenangkan, dan ciri -ciri yang kaya. 1) Ia menyerap falsafah reka bentuk Rubyonrails, menggabungkan fleksibiliti PHP. 2) Menyediakan alat seperti eloquentorm, enjin templat bilah, dan lain -lain untuk meningkatkan kecekapan pembangunan. 3) Mekanisme suntikan seni bina dan ketergantungan MVC menjadikan kod lebih modular dan boleh diuji. 4) Menyediakan alat debugging yang kuat dan kaedah pengoptimuman prestasi seperti sistem caching dan amalan terbaik.

Kedua-dua Django dan Laravel adalah kerangka kerja penuh. Django sesuai untuk pemaju python dan logik perniagaan yang kompleks, manakala Laravel sesuai untuk pemaju PHP dan sintaks elegan. 1.Django didasarkan pada python dan mengikuti falsafah "lengkap bateri", sesuai untuk perkembangan pesat dan kesesuaian yang tinggi. 2. Laravel didasarkan pada PHP, menekankan pengalaman pemaju, dan sesuai untuk projek kecil dan sederhana.

PHP dan Laravel tidak dapat dibandingkan secara langsung, kerana Laravel adalah rangka kerja berasaskan PHP. 1.Php sesuai untuk projek kecil atau prototaip cepat kerana ia mudah dan langsung. 2. Laravel sesuai untuk projek besar atau pembangunan yang cekap kerana ia menyediakan fungsi dan alat yang kaya, tetapi mempunyai lengkung pembelajaran yang curam dan mungkin tidak sebaik php tulen.

LaravelisabackendFramWorkBuiltonPHP, Direka ForweBapplicationDevelopment.itfocusesonServer-Sidelogic, DatabaseManagement, andApplications Structure, andCanbeIntegratedWithFrontendTechnologiesLikeVue.jsorreactorfull-stackdevelopment.

Artikel ini membincangkan membuat dan menggunakan arahan pisau tersuai di Laravel untuk meningkatkan templat. Ia meliputi arahan yang menentukan, menggunakannya dalam templat, dan menguruskannya dalam projek besar, menonjolkan manfaat seperti kebolehgunaan semula kod yang lebih baik dan r yang lebih baik dan r

Artikel ini membincangkan membuat dan menyesuaikan elemen UI yang boleh diguna semula di Laravel menggunakan komponen, menawarkan amalan terbaik untuk organisasi dan mencadangkan peningkatan pakej.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Dreamweaver CS6
Alat pembangunan web visual

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini