隨著電商的發展,商品展示對於電商網站的重要性越來越突出。為了滿足商家的需求,網站需要打造一個好的商品展示頁面,也需要實現方便的商品管理系統。在本文中,將探討如何使用 Laravel 5.4 來實現一個商品管理系統的修改功能。
前置知識
在開始之前,我們需要掌握 Laravel 框架和 Blade 模板的基礎知識。
Laravel 是一個免費的開源 PHP Web 框架,使用 PHP 語言編寫,基於 MVC 模式(Model - View - Controller)設計。 Laravel 框架提供了許多工具和函數,以實現具有高效性和可擴展性的 Web 應用程式。
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 應用程序,以便為廣大用戶提供更好的體驗。
以上是laravel5.4做商品修改的詳細內容。更多資訊請關注PHP中文網其他相關文章!