laravel 从API访问某些路由时出现问题

pkwftd7m  于 2023-05-19  发布在  其他
关注(0)|答案(1)|浏览(108)

我用Laravel 8创建了一个API,非常简单,只是做一些测试,它是一个用户表,我存储他们的名字,姓氏和城市。
那么我的问题是要获得所有的用户是在数据库中,当使一个POST和添加一个新的,我可以使一个GET看到一个特定的用户,我也可以更新用户和删除他们,所以我不明白为什么我不能添加他们,看到所有的。
下面是代码
UsuarioController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Usuario;


class UsuarioController extends Controller
{
    public function index()
    {
        $usuarios = Usuario::all();

        return response()->json($usuarios);
    }
  
    public function show($id)
    {
        $Usuario = Usuario::find($id);

        if (!$Usuario) {
            return response()->json(['error' => 'Usuario not found'], 404);
        }

        return response()->json($Usuario);
    }

    public function store(Request $request)
    {
        $usuario = new Usuario();
    
        $usuario->nombre = $request->input('nombre');
        $usuario->apellidos = $request->input('apellidos');
        $usuario->ciudad = $request->input('ciudad');
    
        $usuario->save();
    
        return response()->json($usuario, 201);
    }
    
    public function update(Request $request, $id)
    {
        $usuario = Usuario::find($id);
    
        if (!$usuario) {
            return response()->json(['error' => 'Usuario not found'], 404);
        }
    
        $usuario->nombre = $request->input('nombre');
        $usuario->apellidos = $request->input('apellidos');
        $usuario->ciudad = $request->input('ciudad');
    
        $usuario->save();
    
        return response()->json($usuario);
    }

    public function destroy($id)
    {
        $Usuario = Usuario::find($id);

        if (!$Usuario) {
            return response()->json(['error' => 'Usuario not found'], 404);
        }

        $Usuario->delete();

        return response()->json(['message' => 'Usuario deleted']);
    }
}

Routes/Api.php

<?php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Models\Usuario;
use App\Http\Controllers\UsuarioController;

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
    return $request->user();
});

Route::get('/usuarios', [UsuarioController::class, 'index']);
Route::post('/usuarios', [UsuarioController::class, 'store']);
Route::get('/usuarios/{id}', [UsuarioController::class, 'show']);
Route::put('/usuarios/{id}', [UsuarioController::class, 'update']);
Route::delete('/usuarios/{id}', [UsuarioController::class, 'destroy']);

And Models/Usuario.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Usuario extends Model
{
    use HasFactory;
    protected $fillable = ['nombre', 'apellidos', 'ciudad'];
   
    protected $table =  'usuarios';
}

我使用这个网址“http://localhost:8000/api/usuarios”,我得到404找不到,但我不明白为什么如果别人要求像把作品

2eafrhcq

2eafrhcq1#

我想你在postman中的URL后面多加了一个空格/行,请修剪一下

相关问题