Ответы пользователя по тегу Yii
  • Как правильно связать сайт и RESTful API?

    @dasauser
    Пишу на PHP
    Вы неправильно понимаете термин API.
    Ваше определение:
    RESTful API - выполняет всё, что связано с работой с сущностями и БД

    Определение с вики:
    RESTful API - описание способов, которыми одна компьютерная программа может взаимодействовать с другой программой

    Что я хочу этим сказать: API - прослойка между юзером и сервером. Пример - клавиатура. Она предоставляет интерфейс, а компьютер уже обрабатывает данные и выводит результат, в зависимости от того, что вы нажали (комбинация ли клавиш, клавиша-переключатель и т.п.)

    Отвечаю на вопрос:
    Как правильно связать сайт и RESTful API?

    Никак. Интерфейс надо реализовывать, а не связывать.
    Как это сделать?
    Заводите сервер, заводите приложение, пишете код.
    Работает? Начинаете реализовывать интерфейс, путем стандартизации http-общения между клиентом-сервером.

    p.s: Надеюсь, что более знающие люди поправят и дополнят мой ответ.
    Ответ написан
    3 комментария
  • Проблема с checkboxList. Yii2?

    @dasauser
    Пишу на PHP
    Ну, вроде как то так:
    //controller
    public function actionView() {
        $data = [["id" => 1, "checked" => true], ["id" => 2, "checked" => false], ["id" => 3, "checked" => true]];
        return $this->render('view', [ 'data' => $data, 'model' => $this->findModel($id), ]);
    }
    
    //View
    foreach ($data as $key => $value) {
        $checked = '';
        if ($value['checked'] === true) {
            $checked = 'checked';
        }
        echo "<input type=checkbox id=" . $value['id'] . " $checked>";
    }
    Ответ написан
  • Как правильно оформить INSERT ... ON DUPLICATE KEY UPDATE?

    @dasauser Автор вопроса
    Пишу на PHP
    сделал так:
    1. ищу в базе запись с нужными атрибутами
    2. есть - пропускаю, нету - добавляю в массив обновляемых записей
    3. создаю запрос, вставляющий записи
    Ответ написан
    Комментировать
  • Что не так с update запросом?

    @dasauser Автор вопроса
    Пишу на PHP
    расходимся.
    передавался кривой json, где было название с кавычками, и при попытке составить запрос выходило как-то так:
    ...name="продукт с названием"название продукта" вес 500 кг"...
    починил так:
    $sql .= ' WHEN [[code]]=' . $record_code . ' THEN \'' . $record_name . '\'';
    Ответ написан
    Комментировать
  • Как сделать ошибку 403?

    @dasauser
    Пишу на PHP
    для yii-2.
    просто для yii - не знаю. найду что-нибудь - дополню ответ.
    use yii\web\HttpException;
    //some code...
    throw new HttpException(403/*or any code*/, 'Forbidden'/*or any message*/);

    а вообще нужно делать так:
    try {
      //any code
    } catch (Exception $e) {
        echo 'Выброшено исключение: ',  $e->getMessage(), "\n"; // any action/message
    }
    Ответ написан
    4 комментария
  • Как правильно выводить ссылки из записи в поле таблицы БД?

    @dasauser
    Пишу на PHP
    используя yii2-html-helper
    <?php
    use yii\helpers\Html;//это - в самый верх файла
    //что-то
    $id = 'ид для тега';
    $url = 'ваша ссылка';
    echo Html::a('Ссылка', $url, ['class' => 'class', 'id' => $id]);

    просто php-html
    //что-то
    $id = 'ид для тега';
    $url = 'ваша ссылка';
    echo "<a href='" . $url . "' id='" . $id . "'>Ссылка</a>";
    Ответ написан
    Комментировать
  • В yii2 не работает метод load()?

    @dasauser Автор вопроса
    Пишу на PHP
    оказывается надо было явно указывать имя класса в имени инпута:

    'filter' => DatePicker::widget([
                        'name' => 'ImagesSearch[created_at]', //было просто 'created_at'
                        'clientOptions' => [
                            'format' => 'dd-mm-yyyy'
                        ]
                    ])
    Ответ написан
    Комментировать
  • Как найти всех предков без внуков?

    @dasauser Автор вопроса
    Пишу на PHP
    надо к текущему запрос просто добавить WHERE `childs`.`parents_col` IS NULL
    выглядит так (sql):
    SELECT `elders`.* FROM `elders` LEFT JOIN `parents` ON `elders`.`col` = `parents`.`elders_col` LEFT JOIN `childs` ON `parents`.`col` = `childs`.`parents_col` WHERE `childs`.`parents_col` IS NULL

    yii2:
    Elders::find()->joinWith('parents.childs')->where(['childs.parents_col' => null])->asArray()->all();
    Ответ написан
    Комментировать
  • YII2 Как правильно построить запрос с joinWith?

    @dasauser Автор вопроса
    Пишу на PHP
    $model = Images::find()
            ->joinWith('product')
            ->where(['product.id' => $id])
            ->asArray()
            ->one();
    Ответ написан
    Комментировать