Ajax code
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
url: "/vouchersave",
type: "post",
dateType: "JSON",
data: voucherData,
success:function(data){
console.log(data);
},
});
The ajax is working with this post route
Route::post('/vouchersave', function(Request $request){
$input = $request->all();
Log::info($input);
return response()->json(['success'=>'Got Simple Ajax Request.']);
});
But when I change to resource route store method, it shows 500 internal server error
Route::resource('voucher', VoucherController::class, ["name" => "voucher"]);
public function store(Request $request)
{
$input = $request->all();
Log::info($input);
return response()->json(['success'=>'Got Simple Ajax Request.']);
}
Ajax code for resource route controller
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
url: "/voucher",
type: "post",
dateType: "JSON",
data: voucherData,
success:function(data){
console.log(data);
},
});
The error is
[2022-04-18 09:26:55] local.ERROR: Class "App\Http\Controllers\Log" not found {"userId":1,"exception":"[object] (Error(code: 0): Class "App\Http\Controllers\Log" not found at /home/kyaw/project/spa/spa_salon/app/Http/Controllers/VoucherController.php:53) [stacktrace]
CodePudding user response:
First, you have to import the controller like,
use App\Http\Controllers\VoucherController;
And you used it in class,
Route::resource('voucher',[VoucherController::class, 'store']);
CodePudding user response:
The error causing of 500 internal server error is Log::info() in store method of controller.
CodePudding user response:
The problem is that you call Log::info($input); without using the namespace of Log. You will need to use the proper namespace of the Log class, like
use Illuminate\Support\Facades\Log;
The above assumes that you are using the Log of Illuminate. If that's not the case, then you will need to change the namespace path to the one you are actually using.
