【问题标题】:How to call api url with question marks in Laravel?如何在 Laravel 中使用问号调用 api url?
【发布时间】:2021-08-30 19:01:36
【问题描述】:

我正在尝试在 Laravel 中调用带有问号的网址... 我正在开发一个使用以下 url 的计算器 api,例如:

'api/calculator/add?a={a}&b={b}'

我该如何称呼这样的网址??

我在 api.php 中有以下路由:

Route::get('/calculator/add?a={a}&b={b}', function ($a, $b ) {
    return Calculator::sub($a, $b);
})

Route::get('/calculator/sub?a={a}&b={b}', function ($a, $b ) {
    return Calculator::sub($a, $b);
});
Route::get('/calculator/div?a={a}&b={b}', function ($a, $b ) {
    return Calculator::div($a, $b);
});
Route::get('/calculator/mul?a={a}&b={b}', function ($a, $b ) {
    return Calculator::mul($a, $b);
});
Route::get('/calculator/mod?a={a}&b={b}', function ($a, $b ) {
    return Calculator::mod($a, $b);
});

我还有一个计算器控制器:

use Illuminate\Http\Request;
use App\Calculator;
use App\Http\Requests\CalculatorRequest;

class CalculatorController extends Controller
{
    private calculator = new Calculator();

    public function add(CalculatorRequest $request)
    {
        // TODO @laravel-test
        echo var_dump($request);
        $request->validate( [
            'a' => ['required', new CalculatorRequest()]
            'b' => ['required', new CalculatorRequest()]
        ]);

        // Calculate and return the result...
    }

    public function sub(CalculatorRequest $request)
    {
        // TODO @laravel-test
        $request->validate( [
            'a' => ['required', new CalculatorRequest()]
            'b' => ['required', new CalculatorRequest()]
        ]);

        // Calculate and return the result...
    }


    public function div(CalculatorRequest $request)
    {
        // TODO @laravel-test
        $request->validate( [
            'a' => ['required', new CalculatorRequest()]
            'b' => ['required', new CalculatorRequest()]
        ]);

        // Calculate and return the result...
    }

    public function mul(CalculatorRequest $request)
    {
        // TODO @laravel-test
        $request->validate( [
            'a' => ['required', new CalculatorRequest()]
            'b' => ['required', new CalculatorRequest()]
        ]);

        // Calculate and return the result...
    }

    public function mod(CalculatorRequest $request)
    {
        // TODO @laravel-test
        $request->validate( [
            'a' => ['required', new CalculatorRequest()]
            'b' => ['required', new CalculatorRequest()]
        ]);

        // Calculate and return the result...
    }
}

我在互联网上找不到任何信息.. 我该怎么做?

提前致谢。

【问题讨论】:

标签: laravel laravel-routing


【解决方案1】:

据我所知,你不能这样做。

当您执行url/something?a=123&b=456 时,您可以执行以下操作:

public function show(Request $request)
{
    $a = $request->input('a');
    $b = $request->input('b');

    dd($a, $b); // $a = 123, $b = 456
}

但你的路线将是:

Route::get('url/something', [YourController::class, 'show']);

【讨论】:

    猜你喜欢
    • 2017-10-15
    • 2017-08-09
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-30
    • 2019-09-04
    相关资源
    最近更新 更多