Не нубский способ извлечения данных в Laravel с помощью jQuery - PullRequest
0 голосов
/ 02 ноября 2019

Я перестраиваю приложение в Laravel и в настоящее время использую следующий код, я думаю, он будет называться AJAX.

$('.date').change(function () {
    var date = $('.date').val();
    $('#date_summary').html(date);
    if (date == "") {
        $('#date_summary').html('Choose your service date...');
    } else if ($.trim(date) !== '') {
        $.get('/calendar.php', {
            date: date
        }, function (data) {
            var data = data.toString();
            $('#date_data').html(data);
        });
    }
});
$('.calendar').trigger('change');

Чтобы получить этот код:

if ( isset($_GET['date']) === true && empty($_GET['date']) === false ) {
    global $db;
    $date = $_GET['date'];
    $query = "select * from appointments where Day = :date";
    $statement = $db->prepare($query);
    $statement->bindValue(':date', $date);
    $statement->execute();
    $result = $statement->fetch();
    $statement->closeCursor();
    $eight_to_nine = $result['8AM_9AM'];
    $nine_to_ten = $result['9AM_10AM'];
    $ten_to_eleven = $result['10AM_11AM'];
    $eleven_to_twelve = $result['11AM_12PM'];
    $twelve_to_one = $result['12PM_1PM'];
    $one_to_two = $result['1PM_2PM'];
    $two_to_three = $result['2PM_3PM'];
    $three_to_four = $result['3PM_4PM'];
    $four_to_five = $result['4PM_5PM'];
    $five_to_six = $result['5PM_6PM'];
    $six_to_seven = $result['6PM_7PM'];

    if ($eight_to_nine != 1) {
        echo "<option value='8AM_9AM'>8:00AM - 9:00AM</option>";
    }

    if ($nine_to_ten != 1) {
        echo "<option value='9AM_10AM'>9:00AM - 10:00AM</option>";
    }

    if ($ten_to_eleven != 1) {
        echo "<option value='10AM_11AM'>10:00AM - 11:00AM</option>";
    }

    if ($eleven_to_twelve != 1) {
        echo "<option value='11AM_12PM'>11:00AM - 12:00PM</option>";
    }

    if ($twelve_to_one != 1) {
        echo "<option value='12PM_1PM'>12:00PM - 1:00PM</option>";
    }

    if ($one_to_two != 1) {
        echo "<option value='1PM_2PM'>1:00PM - 2:00PM</option>";
    }

    if ($two_to_three != 1) {
        echo "<option value='2PM_3PM'>2:00PM - 3:00PM</option>";
    }

    if ($three_to_four != 1) {
        echo "<option value='3PM_4PM'>3:00PM - 4:00PM</option>";
    }

    if ($four_to_five != 1) {
        echo "<option value='4PM_5PM'>4:00PM - 5:00PM</option>";
    }

    if ($five_to_six != 1) {
        echo "<option value='5PM_6PM'>5:00PM - 6:00PM</option>";
    }

    if ($six_to_seven != 1) {
        echo "<option value='6PM_7PM'>6:00PM - 7:00PM</option>";
    }
}

Myвопрос в том, есть ли более элегантный способ сделать это в Laravel? Я просто пытаюсь реализовать то, что считается лучшей практикой. Я думаю, что это будет чем-то вроде API? Любая помощь приветствуется.

1 Ответ

2 голосов
/ 02 ноября 2019

Если вы спрашиваете о лучшем способе сделать это в Laravel, то, безусловно, настройка API будет отличным способом сделать это.

Просто настройте маршруты API, а в методе Controller используйте Laravel EloquentORM с транзакциями базы данных.

Затем, наконец, вызовите маршруты в вашем запросе AJAX и дождитесь ответа. Затем выполните последние операции на основе возвращенного ответа от Laravel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...