Laravel-传递补丁请求参数

时间:2019-10-10 10:51:09

标签: php laravel object phpunit

您好,我正在研究一种用于更新配置文件的更新方法,现在我正在通过将模型作为参数传递来更新配置文件,但我想输入配置文件的ID,因此路由为{{1} }我对laravel还是很陌生,所以我想知道当在laravel中获取对象时,如何修改控制器和phpunit测试以更新这种方式?

控制器中的更新功能:

patch('/profiles/podcast/{id}''

这是更新方法的当前路径

 public function update(PodcastProfile $podcastProfile)
{
    $this->user = Auth::user();
    $this->podcastProfile = $podcastProfile;

    if (!$this->hasPodcastProfile()) {
        abort(400, "You don't have a podcast profile configured");
    }

    $this->validation();

    $this->transaction();

    return $this->podcastProfile->toJson();
}

这是该功能的phpunit测试用例

Route::patch('/profiles/podcast/{podcastProfile}', 'PodcastProfileController@update');

1 个答案:

答案 0 :(得分:0)

嘿,

如果我正确理解了您的问题,您只需传递该个人资料的ID,就像您说的那样:

Route::patch('/profiles/podcast/{podcastProfileId}','PodcastProfileController@update');

,然后通过给定的ID提取配置文件。

类似:

    $this->podcastProfile = App\PodcastProfile::find($podcastProfileId)

我也觉得选择@Remul描述的路由模型绑定方法会是更好的方法。