laravel 資料模型和依賴注入,輕鬆刪除1對多記錄
阿新 • • 發佈:2018-12-16
laravel是PHP框架,以下操作似乎沒有用到PHP和MYSQL語句,就這麼優雅地搞定了:
有兩個表:
賽事表:races
賽事專案表:items (包含欄位:race_id)
一個賽事有多個比賽專案,多個比賽專案對應一個賽事。
建立模型:
Race.php
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Race extends Model { protected $fillable = ['title']; public function items(){ return $this->hasMany('App\Models\Item'); } }
Item.php:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Item extends Model
{
protected $fillable=['race_id'];
public function race()
{
return $this->belongsTo('App\Models\Race');
}
}
控制器:
RacesController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Race; class RacesController extends Controller { .......... public function destroy(race $race) { $race->delete(); $race->items()->delete(); return redirect('/races')->with('notice','刪除成功'); } ................................. }