作者:PHP白姐 | 来源:互联网 | 2024-10-14 15:08
我从有角度的前端呼唤到我的laravel后端。
当我在网址(USERID)中使用变量时,它给我404错误。
当我从url中删除USERID时,它可以工作并到达服务器中的功能。
客户端:
getSeeker(userID: number) {
return this.http.get(`${this.endPoint}/${userID}/getSeekerProfile`,{headers: this.getTokenHeaders()})
}
服务器端:
Route::get('candidate/{userID}/getSeekerProfile','CandidateController@getSeekerProfile');
客户端错误:
GET http://localhost:8000/api/headhunter/candidate/363/getSeekerProfile 404 (Not Found)
服务器端错误:
message: "No query results for model [App\Models\Seeker]."
targted函数(getSeekerProfile):
PS-我还试图返回dd('reached')并删除(User $ userID)参数。
public function getSeekerProfile(User $userID)
{
dd($userID);
}
我找不到真正的问题。在这段代码中,我什至没有使用Seeker模型。
任何想法都将受到欢迎。
谢谢。
PS-也许这会有所帮助:
路线前有中间件
Route::group(['prefix' => 'headhunter','middleware' => ['AuthHeadhunter']],function () {
,它甚至都没有进入里面。
在请求期间是否有可能首先经过另一个地方?
公共函数getSeekerProfile(User $ userID)这行向用户模型发送对$ userID的查询。但是用户模型没有此$ userID => 363
因此,您可以保存此ID用户模型,也可以使用
getSeekerProfile($userID)
{
$user = User::find($userID);
}
代替
getSeekerProfile(User $userID)
,
好,那么不管是谁感兴趣的人->都找到了答案!
我有两条路线,一条又一条:
Route::get('candidate/{seeker}/{jobID}','CandidateController@show');
Route::get('candidate/{userID}/getSeekerProfile','CandidateController@getSeekerProfile');
问题在于路由顺序。
该请求始终进入第一个路由器,因为从理论上讲,第一个路由具有两个变量(搜索者和作业ID),因此它们可能是任何东西:
Route::get('candidate/{can be anything}/{can be anything}','CandidateController@show');
因此laravel将第一个网址(带有两个变量)视为与第二个网址相同:
get('candidate/{can be anything}/{can be anything}','CandidateController@show');
is the same as:
get('candidate/{can be anything}/getSeekerProfile','CandidateController@getSeekerProfile');
只有我们首先输入两条可变路线
因此它输入了第一条路线(不正确)
解决方案是切换订单:
Route::get('candidate/{userID}/getSeekerProfile','CandidateController@getSeekerProfile');
Route::get('candidate/{seeker}/{jobID}','CandidateController@show');
现在laravel不会感到困惑,因为“ getSeekerProfile”不是变量,因此它将知道要输入内部。
在我的第一篇文章中,我只显示了一条路线,因为我什至没有将其视为问题。
感谢所有尝试提供帮助的人,对于最初意外的信息匮乏表示歉意。