隨著電商的發展,商品展示對于電商網站的重要性越來越突出。為了滿足商家的需求,網站需要打造一個好的商品展示頁面,也需要實現方便的商品管理系統。在本文中,將探討如何使用 laravel 5.4 來實現一個商品管理系統的修改功能。
前置知識
在開始之前,我們需要掌握 Laravel 框架和 Blade 模板的基礎知識。
- Laravel 介紹
Laravel 是一個免費的開源 php Web 框架,使用 PHP 語言編寫,基于 mvc 模式(Model – View – Controller)設計。Laravel 框架提供了許多工具和函數,以實現具有高效性和可擴展性的 Web 應用程序。
- Blade 模板介紹
Blade 是 Laravel 的模板引擎,是基于 PHP Blade 構建的。 Blade 模板支持擴展,允許您使用默認布局、節省重復的代碼,并可以輕松地與后端數據交互。
開始實現商品修改
在實現商品修改前,我們需要確保已經配置好 Laravel 環境和數據庫連接。接下來,我們將使用 Laravel 的模型來將商品數據作為對象處理。
- 創建商品模型
在 Laravel 中,模型被用于與數據庫的交互。通過 creating 事件和 saved 事件處理函數,我們可以在保存前和保存后執行某些操作。
首先,在 Laravel 的命令行中執行以下命令創建一個新的模型:
php artisan make:model Product
接下來,我們需要在模型中定義表名和可填充屬性。修改 app/Product.php 文件如下:
<?php namespace App; use IlluminateDatabaseEloquentModel; class Product extends Model { protected $table = 'products'; protected $fillable = ['name', 'description', 'price', 'image']; }
在這個模型中,我們定義了表名為 products,可填充(mass-assignable)屬性為 name、description、price 和 image。
- 創建商品控制器
在 Laravel 中,控制器是用于處理 http 請求的類,可以將用戶請求指定給恰當的方法并返回 HTTP 響應。我們需要創建一個控制器并添加方法來處理商品的修改操作。
在命令行中執行以下命令生成一個新的控制器:
php artisan make:controller ProductController --Resource
這個命令會在 app/Http/Controllers 目錄下創建一個 ProductController.php 文件,并為我們生成基本的 restful 資源方法(index、create、store、show、edit、update、destroy)。
我們將在控制器添加一個 edit 方法來展示商品修改表單,一個 update 方法來處理表單數據和保存更新后的商品信息。
修改 app/Http/Controllers/ProductController 的代碼如下:
<?php namespace AppHttpControllers; use IlluminateHttpRequest; use AppProduct; class ProductController extends Controller { public function edit($id) { $product = Product::findOrFail($id); return view('products.edit', compact('product')); } public function update(Request $request, $id) { $product = Product::findOrFail($id); $product->update($request->all()); return redirect('/products'); } }
在 edit 方法中,我們查詢指定 ID 的商品并將其傳遞給視圖,視圖將渲染商品信息和提供一個修改表單。在 update 方法中,我們更新商品信息并重定向到商品列表頁面。
- 創建商品修改表單
在 Laravel 中,可以使用 Blade 模版引擎來創建 Web 頁面。 下面我們將創建一個視圖來讓用戶修改商品信息。
創建 resources/views/products/edit.blade.php 文件,添加以下代碼:
{!! Form::model($product, ['method'=>'PATCH', 'action'=>['ProductController@update', $product->id], 'files'=>true]) !!} <div class="form-group"> {!! Form::label('name', '商品名稱') !!} {!! Form::text('name', null, ['class'=>'form-control']) !!} </div> <div class="form-group"> {!! Form::label('description', '商品描述') !!} {!! Form::text('description', null, ['class'=>'form-control']) !!} </div> <div class="form-group"> {!! Form::label('price', '商品價格') !!} {!! Form::text('price', null, ['class'=>'form-control']) !!} </div> <div class="form-group"> {!! Form::label('image', '商品圖片') !!} {!! Form::file('image') !!} </div> <div class="form-group"> {!! Form::submit('保存', ['class'=>'btn btn-primary']) !!} </div> {!! Form::close() !!}
在這個模板中,我們使用了 Laravel 的 Form Builder 生成表單元素。在模板中,我們使用了 $product 對象來渲染商品信息,通過 Form::model() 方法將表單與模型對象綁定起來,并將提交數據的請求方法設置為 PATCH。
在表單中,我們定義了商品的名稱、描述、價格和圖片字段,同時還設置了保存按鈕。當用戶提交表單后,數據將提交到商品的 update 方法中。
- 路由設置
在 Laravel 中,路由是用于匹配 URL 和控制器方法的機制。我們需要為 edit 和 update 方法添加路由規則。
打開 routes/web.php 文件,添加以下代碼:
Route::resource('products', 'ProductController'); Route::get('products/{id}/edit', 'ProductController@edit')->name('products.edit'); Route::patch('products/{product}', 'ProductController@update')->name('products.update');
在這個代碼片段中,我們使用資源控制器的 Route::resource 方法創建了商品的 RESTful 資源路由。接著,我們為 edit 方法和 update 方法分別添加了路由規則,允許我們在瀏覽器中通過相應的 URL 來訪問這些方法。
完成以上操作后,我們就可以在瀏覽器中訪問 /products/{id}/edit 的頁面,對商品進行修改了。
小結
在本文中,我們詳細介紹了如何使用 Laravel 5.4 框架來實現商品的修改功能。
通過創建商品模型和控制器、創建商品修改表單以及添加路由設置,我們成功地創建了一個基于 Laravel 的商品管理系統,并且可以方便地進行商品的修改和管理。
Laravel 框架的快速開發能力和 Blade 模板引擎的靈活性,讓開發者可以輕松構建出一個方便易用、全功能的 Web 應用程序。強烈推薦使用 Laravel 5.4 開發電商 Web 應用程序,以便為廣大用戶提供更好的體驗。