1

I'm trying to set axios request but always getting missing argument, but not sure how can I pass it can someone explain why this wont work?

my route: (web.php)

Route::post('/api/setSuccessMessage', 'API\SessionsController@setSuccessMessage');

my controller: (Controllers/API/SessionsController.php)

class SessionsController extends Controller
{
    public static function setSuccessMessage($key, $value)
    {
        session()->put($key ,$value);
    }...

and my vueJS axios call (resources/assets/components/Login.vue)

created: function () {
            // check is user logged out
            axios.post('/api/setSuccessMessages', {message: 'message',message2: 'message2'}).then((response)=> {
                console.log(response);
            })
        },
ggoran
  • 630
  • 2
  • 12
  • 29

2 Answers2

4

If you want to send the data as a part of your request body you can do so like

axios.post('/api/setSuccessMessages', {message: 'message',message2: 'message2'})
     .then((response)=> {
           console.log(response);
      }
)
//you then accept them as such
Route::post('/api/setSuccessMessage/{message}/{message2}', 'API\SessionsController@setSuccessMessage');

If you wish to send the data as a request params (everything after ? in the url) you can do so like this

 var params = {
    message1: message1,
    message2: message2
 };
 axios.post('/api/setSuccessMessages', {}, {'params': params})
     .then((response)=> {
           console.log(response);
      }
)
//you then accept them as such
Route::post('/api/setSuccessMessage', 'API\SessionsController@setSuccessMessage');
//You can further use them as such in controller
function public test(Request $request) {
   $request->get('message1');
   $request->get('message2');
}

I'll reference axios official docs for the axios request params

Nikola Gavric
  • 3,507
  • 1
  • 8
  • 16
  • nice solution, this second part is more of what I needed, check vpalade solution its bit cleaner for same result – ggoran Feb 09 '18 at 10:13
4

Use :

 public static function setSuccessMessage(Request $request)
 {
     $key = $request->get('message');
     $value = $request->get('message2');

     session()->put($key ,$value);
 }
vpalade
  • 1,427
  • 1
  • 16
  • 20