Разрешение вывода поста другим пользователям

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Alexalex
Сообщения: 32
Зарегистрирован: 2018.08.31, 13:53

Разрешение вывода поста другим пользователям

Сообщение Alexalex »

Добрый день, пытаюсь сделать подобное. Пользователь может создать запись и эта запись будет выводится только для него. Я пытаюсь сделать так, чтобы пользователь мог разрешить вывод этой записи другому пользователю. Это должно происходить так, пользователь добавляет email другого пользователя, которого он хочет добавить и этот email вместе с id поста записывается в таблицу participants. Затем в таблице user происходит поиск строки с таким же email и запись значения id из этой строки в man_id в таблице participants. Так вот как мне сделать поиск строки email и запись значения id в man_id



Контроллер

Код: Выделить всё

 public function actionUpdate($id)
    {
        $model = Deal::findOne($id);

        $par = new Participants;

        $par->deal_id = $id;

        if ($par->load(Yii::$app->request->post()) && $par->save()) {

            return $this->redirect(['deal/index']);
        }

	$user = User::find()->select(['id'])->andWhere(['email' => Participants::find()->select(['email'])->andWhere(['deal_id' => $id])])->one();

        $par->man_id = $user;

        if ($model->load(Yii::$app->request->post()) && $model->save()) {
            $model->image = UploadedFile::getInstances($model, 'image');
            if ($model->image) {
                $model->upload();
                return $this->redirect(['deal/index']);
            }
            return $this->redirect(['deal/index']);
        }



        return $this->render('update', [
             'model' => $model, 'par' => $par
        ]);

    }
БД
Изображение



Вот пример
Изображение
morfey
Сообщения: 8
Зарегистрирован: 2018.10.16, 00:15

Re: Разрешение вывода поста другим пользователям

Сообщение morfey »

Код: Выделить всё

        $model = Deal::findOne($id);

        $par = new Participants();

        if (($user = User::find()->select(['email'])->where(['email' => Yii::$app->request->post('email')])->one()) !== null)
            if ($par->load(Yii::$app->request->post()) && $par->validate()) {
                $par->email = $user->email;
                $par->deal_id = $model->id;
                $par->save();
            }
Зачем main_id ?
Та и мейл лучше заменить user_id и выводить relation. Или я что-тонеправильно понял. Структура базы непонятна
Ответить