Laravel 8 - 路由和控制器

Laravel 8 - 路由和控制器 首页 / Laravel8入门教程 / Laravel 8 - 路由和控制器

Laravel资源控制器和资源路由是在Laravel中创建快速CRUD应用程序的非常快捷的函数。对于资源(resource),您必须在laravel应用程序上做两件事。首先,您必须在laravel上创建资源路由,它们默认提供插入(insert),更新(update),查看(view),删除(delete)路由,其次,您必须创建资源控制器,该控制器将提供用于插入(store),更新(update),查看(show)和删除(destroy)的方法。

首先,无涯教程必须了解为什么选择资源路由而不是其他路由。以前总是为应用程序声明不同的路由,例如下面的代码:

CRUD Route:

	

Route::get('items',['as'=>'items.index','uses'=>'[email protected]']);

Route::post('items/create',['as'=>'items.store','uses'=>'[email protected]']);

Route::get('items/edit/{id}',['as'=>'items.edit','uses'=>'[email protected]']);

Route::patch('items/{id}',['as'=>'items.update','uses'=>'[email protected]']);

Route::delete('items/{id}',['as'=>'items.destroy','uses'=>'[email protected]']);

Route::get('items/{id}',['as'=>'items.view','uses'=>'[email protected]']);

如您在路由声明上方所见,必须为crud应用程序模块创建6条路由。这里可以使用资源路由(resource)简单地创建这六条路由:

Resource Route:

<?php

use Illuminate\Support\Facades\Route;

use App\Http\Controllers\ItemController;

/*

|--------------------------------------------------------------------------

| Web Routes

|--------------------------------------------------------------------------

|

| Here is where you can register web routes for your application. These

| routes are loaded by the RouteServiceProvider within a group which

| contains the "web" middleware group. Now create something great!

|

*/

Route::resource('items' ItemController::class);

现在,您可以运行下面命令并检查创建路由列表:

无涯教程网

php artisan route:list

现在有以下输出,就像所创建的路由一样:

+--------+-----------+-------------------+---------------+--------------------------------------+--------------+

| Domain | Method | URI | Name | Action | Middleware |

+--------+-----------+-------------------+---------------+---------------------------------------+--------------+

| | GET|HEAD | api/user | | Closure | apiauth:api |

| | GET|HEAD | items | items.index | App\Http\Controllers\[email protected] | web |

| | POST | items | items.store | App\Http\Controllers\[email protected] | web |

| | GET|HEAD | items/create | items.create | App\Http\Controllers\[email protected] | web |

| | GET|HEAD | items/{item} | items.show | App\Http\Controllers\[email protected] | web |

| | PUT|PATCH | items/{item} | items.update | App\Http\Controllers\[email protected] | web |

| | DELETE | items/{item} | items.destroy | App\Http\Controllers\[email protected] | web |

| | GET|HEAD | items/{item}/edit | items.edit | App\Http\Controllers\[email protected] | web |

+--------+-----------+-------------------+---------------+---------------------------------------------+---------+

好的,现在通过使用下面命令创建资源控制器:

Resource Controller Command:

php artisan make:controller ItemController --resource --model=Item

成功运行以上命令后,无涯教程打开ItemController控制器。

app/Http/Controllers/ItemController.php

<?php

namespace App\Http\Controllers;

use App\Models\Item;

use Illuminate\Http\Request;

class ItemController extends Controller

{

/**

* Display a listing of the resource.

*

* @return \Illuminate\Http\Response

*/

public function index()

{

}

/**

* Show the form for creating a new resource.

*

* @return \Illuminate\Http\Response

*/

public function create()

{

}

/**

* Store a newly created resource in storage.

*

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

*/

public function store(Request $request)

{

}

/**

* Display the specified resource.

*

* @param \App\Item $item

* @return \Illuminate\Http\Response

*/

public function show(Item $item)

{

}

/**

* Show the form for editing the specified resource.

*

* @param \App\Item $item

* @return \Illuminate\Http\Response

*/

public function edit(Item $item)

{

}

/**

* Update the specified resource in storage.

*

* @param \Illuminate\Http\Request $request

* @param \App\Item $item

* @return \Illuminate\Http\Response

*/

public function update(Request $request Item $item)

{

}

/**

* Remove the specified resource from storage.

*

* @param \App\Item $item

* @return \Illuminate\Http\Response

*/

public function destroy(Item $item)

{

}

}

好的,这样可以简单地使用资源路由和控制器,为项目制作快速的CRUD模块。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

邱岳的产品手记 -〔邱岳〕

TensorFlow快速入门与实战 -〔彭靖田〕

如何读懂一首诗 -〔王天博〕

陈天 · Rust 编程第一课 -〔陈天〕

eBPF核心技术与实战 -〔倪朋飞〕

大厂设计进阶实战课 -〔小乔〕

Serverless进阶实战课 -〔静远〕

现代C++20实战高手课 -〔卢誉声〕

结构思考力 · 透过结构看问题解决 -〔李忠秋〕

好记忆不如烂笔头。留下您的足迹吧 :)