【问题标题】:404 Not Found! Url Not Found . API key Update How to Solve?404 未找到!找不到网址。 API 密钥更新如何解决?
【发布时间】:2019-07-19 21:58:16
【问题描述】:

我的路由 API:

Route::get('/outline/{key}',"OutlineController@show");
Route::post('/outline',"OutlineController@store");
Route::delete('/outline/{key}',"OutlineController@destroy");
Route::put('/outline/{key}',"OutlineController@update");

我的控制器代码是:

public function update(Request $request ,$key)
{
    $request->validate([
        'title' => 'string|required',
        'content' => 'string|required',
        'pseudo' => 'string',
        'email' => 'email|required'
    ]);

    try {
        if($outline = Outline::where('key',$key)->first()){

            $outline = Outline::where('key',$key)->first();

            $outline->title = $request->title;
            $outline->content = $request->content;
            $outline->pseudo = $request->pseudo;
            $outline->email = $request->email;
            $outline->save()->refresh();

            return response()->json([
                'message' => "Success!",
                'outline' => $outline
            ],200);

        } else {
            return response()->json([
                'message' => "Not found!"
            ],404);
        }
    } catch (\Exception $e){
        report($e);
        return response()->json([
            'message' => "Something went really wrong!"
        ],500);
    }

}

此页面显示 404 Not Found:

我已尝试过去 3 小时,但没有响应。请解决这个问题...

我尝试了 put 和 patch 方法但是 404 not found page Show..

高级感谢您的帮助.....

【问题讨论】:

  • 尝试运行php artisan route:clear
  • 不工作..@SaurabhMistry
  • 运行php artisan route:list 看看你所有的路线都在那里?
  • 你能把你的完整路线文件粘贴到这里吗
  • 你能告诉我们完整的路由和控制器文件吗?

标签: php laravel api url routes


【解决方案1】:

在您请求的标头选项卡中,确保已设置以下标头。这会告诉 Laravel 你正在发送一个 Ajax 请求,而不是一个标准的 HTTP 请求。

Content-Type: application/json
Accept: application/json

【讨论】:

    【解决方案2】:

    首先,解决此类问题的第一部分检查您是否可以到达路线。因此,如果您不编写测试,只需在更新时使用 dd();

    public function update(Request $request ,$key)
    {
        dd($request, $key);
    
    }
    

    如果你不能按路线尝试使用简单的休息客户端,如邮递员或失眠来创建请求或这样的简单表单;

    // if you using routes/api.php /api/outline/1234
    <form action="/outline/1234" method="POST">
        @csrf
        @method('PUT')
    
        ...
    </form>
    

    如果你到达了路线,那么你的问题就在这里;

    return response()->json([
                    'message' => "Not found!"
                ],404);
    

    【讨论】:

    • 这只是 API 不是表格
    • 不管 api 与否你都可以用这种方式检查你的问题。顺便说一句,您使用此 $outline = Outline::where('key',$key)-&gt;first() 查询 2 次只需在 if 语句之外使用一次。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    • 2021-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多