Vue js parameter can't get in route

Viewed 89

I use VueJS and laravel but now I can't get parameter value, please help me to solve this problem.

my VueJS code:

getTestData:function () {
    let config = {
        params: {
            id: 1
        }
    };
    axios.post('{{ route('get_user_data') }}', config)
        .then(function (response) {
            console.log(response);
            // app.posts=response.data;
        })
        .catch(error => {

        })
    },

My Controller code:

public function testData(Request $request)
{
    // how to get this value?
}

My route

Route::post('get-user-data','TestController@testData')->name('get_user_data');
2 Answers

You don't actually need a post request to get some values out of database. A get request would be more suitable.

You need to have the param in the route definition

Route::get('get-user-data/{id}','TestController@testData')->name('get_user_data');

//If you want to use post route

Route::post('get-user-data/{id}','TestController@testData')->name('get_user_data');

Then in controller method you can get the value out of the request

public function testData(Request $request)
{
    $id = $request->route('id');
}

params are the URL parameters to be sent with the request

You could retrieve input from query string in your controller as:

public function testData(Request $request)
{
    $id = $request->query('id');
}
Related