我有一個關于FormRequest類的疑問(我認為它適用于其他類)。
我有一個類,它有一個 init() 方法。這個方法接收一個VehicleRequest。我將分享一個簡化版的代碼:
我有一個類,它有一個init()方法,這個方法接收一個VehicleRequest。
public function init(VehicleRequest $request) {
if($request->input('type' == 'car'){
$vehicle = new Car($request)。
} else {
$vehicle = new MotorCycle($request)。
}
汽車類:
class Car{
title">__construct(VehicleRequest $request) {
...
}
}
我發送的請求(以汽車為例)看起來像:
{
"type": car,
" wheels": 4,
"brand": bmw
現在,在這個例子中,一個汽車類被初始化為VehicleRequest。但是除了VehicleRequest所做的檢查之外,我還需要做其他的檢查。例如,我需要檢查車輪是否是4個,品牌是否在我定義的集合中......
那么,我如何才能讓我的汽車類在我定義的集合中出現?
那么,我怎樣才能讓汽車類等待作為引數的CarRequest?
例如用VehicleRequest來代替?例如:
class Car{
title">__construct(CarRequest $request) {
...
}
}
uj5u.com熱心網友回復:
在這里使用服務容器:
在AppServiceProvider中輸入以下內容
public function register ()
{
$type = app(Request::class)-> get('type')
if($type == 'car') {
$this->app->bind(VehicleRequestInterface::class, CarRequest::class)
} else {
$this->app->bind(VehicleRequestInterface::class, VehicleRequest::class)
}
}
class Car{
title">__construct(VehicleRequestInterface $request) {
...
}
}
。
class CarRequest extends FormRequest implements VehicleRequestInterface {
....
}
class VehicleRequest extends FormRequest implements VehicleRequestInterface {
....
}
// VehicleRequestInterface
interface VehicleRequestInterface
{
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/328111.html
標籤:
上一篇:c 程式在第二次讀取檔案后崩潰了
