亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel 中根據 url 返回特定類

Laravel 中根據 url 返回特定類

PHP
冉冉說 2023-11-03 15:24:27
我有這條路線Route::get('/mailable/{mail}', [TestController::class, 'mailable'])->where('mail', '(verification)');基于{mail}url 的 od 我想從我的控制器返回特定的類public function mailable($mail){    if ($mail == 'verification') {        return new Verification();    }}有沒有更好的方法來做到這一點,否則我需要發表數千條if聲明。或者我應該使用switch?我也嘗試連接$mail返回()類,但它不起作用
查看完整描述

1 回答

?
MM們

TA貢獻1886條經驗 獲得超2個贊

PHP 可以基于字符串執行很多語法,因此如果您的輸入名稱始終是類名,則將第一個字符設為大寫。您應該能夠執行以下操作。


$className = "App\Models\\" . ucfirst($mail);


return new $className();

這還要求命名空間之間存在關系,另一種方法是將輸入映射到輸出。


protected $classMap = [

    'verification' => Verification::class,

]


return new $this->classMap[$mail]();

你很快就會陷入滑坡,也許是時候考慮一下你是否想變得如此通用了。這一切都取決于用例,我認為通用類實例化不應該應用在任何可以應用的地方。


查看完整回答
反對 回復 2023-11-03
  • 1 回答
  • 0 關注
  • 118 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號