Так что у меня есть небольшая проблема при попытке проверить, существует ли перекрытие в базе данных. Я пытался проверить это с помощью скрипта AJAX, перенаправляющего на функцию PHP, которая использует запрос SQL, но когда я пытаюсь это сделать, он всегда говорит мне, что эта ошибка не перекрывается: The Response content must be a string or object implementing __toString(), "boolean" given.
Я отправляю вам свои AJAX и PHP коды, чтобы они могли вам помочь:
AJAX скрипт:
$('#add_formulaire').click(function()
{
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
type: 'POST',
url: 'checkOverlap',//Redirecting to a route, which redirects to the PHP function
success: function () {
alert("overlap");//Debug alert
$reponse = confirm("Il y a un chevauchement dans les horaires. Voulez-vous tout de même continuer ?");
if($reponse)
{
$.ajax({
type: 'POST',
url: 'add_reservation',
data: {
horaire: $("#sel_liste_horaires").val(),
//annee : $("#anneeCours").val(),
quadrimestre: $("#quadrimestre").val(),
dateReservation: $("#datepicker").val(),
event: $("#event").val(),
typeCours: $("#typeCours").val(),
enseignant: $("#enseignant").val(),
local: $("#local").val(),
heureDebut: $("#heureDebut").val(),
heureFin: $("#heureFin").val(),
nombreSemaine: $("#nbSemaines").val()
},
dataType: 'json',
success: function(data)
{
alert("La réservation a été ajoutée.");
console.log(data);
//$('#addFormulaire').trigger("reset");
$("#addFormulaire.close").click();
},
error: function(data)
{
alert("alerte erreur");
console.log(data);
var errors = $.parseJSON(data.responseText);
$('#add-task-errors').html('');
$.each(errors.messages, function(key, value) {
$('#add-task-errors').append('<li>' + value + '</li>');
});
$("#add-error-bag").show();
}
});
}
else
{
alert('chevauchement annulé');//Debug alert
}
},
error: function () {
alert("pas d'overlap");//Debug alert
}
});
PHP скрипт:
public function check($borneInferieure = 8, $borneSuperieure = 18){
$request = new Request();
$valeurInferieure = $request->heureDebut;
$valeurSuperieure = $request->heureFin;
$requete = DB::raw("
SELECT *
FROM reservations
INNER JOIN locals ON reservations.local_id = locals.id
INNER JOIN enseignants ON reservations.enseignant_id = enseignants.id
WHERE " . $valeurInferieure . " <= " . $borneSuperieure . "
AND " . $valeurSuperieure . " >= " . $borneInferieure . "
AND reservations.local_id != locals.id
AND reservations.enseignant_id != enseignants.id");
if ($requete)
return true;
else
return false;
}
Заранее благодарю за ответы.