为了账号安全,请及时绑定邮箱和手机立即绑定

在laravel路由中使用参数调用自定义类方法

在laravel路由中使用参数调用自定义类方法

PHP
跃然一笑 2022-07-09 09:51:10
所以我有这个功能,它将被用作 1 作为工匠命令或 2 作为用户可以使用的链接。这是功能:public function saveAll($whatLocation)    {      $userSaved = $this->saveUsersData();      $componentSaved = $this->saveComponentsData();      $issueSaved = $this->saveIssuesData();      $timelogSaved = $this->saveTimelogsData();      if($userSaved === 1 && $componentSaved === 1 && $timelogSaved === 1)      {        $this->allSaved = 1;      }      if($whatLocation != "artisanCommand")      {        return redirect()->back();      }      else      {        return $this->allSaved;      }    }这个想法是,如果它来自我创建的工匠控制台命令,我会传递“artisanCommand”,但如果它来自路由,它会拉取我的 api 数据并重定向到上一页。这是问题所在:在网络路由文件中,我现在不能调用具有参数的函数?Route::get('/pull-and-save-api-data', [App\Classes\SaveApiData::class, 'saveAll'])->name('pull-and-save-api-data');如果函数上没有参数,这可以工作,但现在有参数就不行了?我试过了:Route::get('/pull-and-save-api-data', [App\Classes\SaveApiData::class, 'saveAll("notcommand")'])->name('pull-and-save-api-data');Route::get('/pull-and-save-api-data/{notcommand}', [App\Classes\SaveApiData::class, 'saveAll'])->name('pull-and-save-api-data');既不工作?
查看完整描述

1 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

由于您没有从路由传递给它的值,因此您只需为该函数创建一个默认参数怎么样?


public function saveAll($whatLocation = null)

我不会直接从这样的路线调用你的方法;让路由转到控制器并让该控制器与您需要的类/库进行交互。


如果你真的必须从路由中传递一个值,你可以设置一个默认值:


Route::get('/pull-and-save-api-data', [App\Classes\SaveApiData::class, 'saveAll'])

    ->name('pull-and-save-api-data')

    ->defaults('whatLocation', 'notArtisan');


查看完整回答
反对 回复 2022-07-09
  • 1 回答
  • 0 关注
  • 163 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号