gpt4 book ai didi

php - 在 Laravel 路由中使用参数调用自定义类方法

转载 作者:行者123 更新时间:2023-12-02 19:44:35 32 4
gpt4 key购买 nike

所以我有这个函数,它将被用作 1 作为 artisan 命令或 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;
}

}

这个想法是,如果它来 self 创建的 artisan 控制台命令,我会传递“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');

都不起作用吗?

最佳答案

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

public function saveAll($whatLocation = null)

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

如果您确实需要从路由传递一个值,您可以设置一个默认值:

Route::get('/pull-and-save-api-data', [App\Classes\SaveApiData::class, 'saveAll'])
->name('pull-and-save-api-data')
->defaults('whatLocation', 'notArtisan');

关于php - 在 Laravel 路由中使用参数调用自定义类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59536199/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com