Soy nuevo con laravel, tengo un problema al publicar mis datos en el controlador en laravel mientras uso ajax. Mi vista contiene un cuadro de selección que se completa desde la base de datos cuando un usuario selecciona un valor del cuadro de selección. Estoy tratando de llamar a ajax, que devolverá los detalles del salario del usuario. El problema es que me da el error 404 no encontrado.
El código para el archivo del controlador se muestra a continuación.
this function is defined inside a controller public function getPostSalary() { echo "ajax called"; return 'true'; }El archivo de Rutas es
Route::post('company/salary-user', 'CompanyController@getPostSalary');este es mi código ajax desde donde se llama al controladorD
<script> $(document).ready(function() { $('#employee').change(function () { var values = $('#employee').val(); if (values == '') { $.pnotify({ title: 'Message', text: 'Please Select a User.', type: 'error', delay: 3000 }); return false; } var csrf = $('#csrf').val(); $.ajax({ url: '{!! URL::to("company/salary-user")!!}', type: "POST", data: { user_id: values, _token: csrf }, cache: false, beforeSend: function () { }, success: function (data) { console.log(data); $('#loader').hide(); } }); }); }); </script>¿Puede alguien ayudarme a averiguar cuál es el problema y qué se debe hacer para llamar a mi función?
Las comillas simples son para cadenas, por lo que su URL no se genera como esperaba. Usar así
url : "{!! URL::to('company/salary-user')!!}",reemplaza esta línea:
{!! URL::to("company/salary-user")!!}por :
{{ url('/company/salary-user') }}o
{{ route('/company/salary-user') }}Puedes usar una URL directa como
$.ajax({ url:'company/salary-user', type: "POST", data: { user_id: values, _token: csrf }, cache: false, beforeSend: function () { }, success: function (data) { console.log(data); $('#loader').hide(); } });