Как переключить код из класса БД в Eloquent запрос? Laravel - PullRequest
1 голос
/ 30 апреля 2019

Я хочу, чтобы из класса БД переключился на Eloquent, и у меня есть несколько запросов

Во-первых, я хочу добавить в subscription_user user_id пользователя и hard core subscription_id = 1 по умолчанию.

    DB::table('subscription_user')->insert(
            ['user_id' => $user->id, 'subscription_id' => 1]
        );

Во-вторых, я хочу вернуть верификационный токен

     $check = DB::table('user_verifications')->where('token', 
     $verification_code)->first();

В-третьих, я хочу обновить принятое поле

       $res =   DB::table('offers')
        ->where('id', $id)
        ->update(['accepted' => 1]);

1 Ответ

2 голосов
/ 30 апреля 2019

# 1

DB::table('subscription_user')->insert(
        ['user_id' => $user->id, 'subscription_id' => 1]
    );

Красноречивый эквивалент (*):

$subscriptionUser = SubscriptionUser
                        ::create(['user_id' => $user->id, 'subscription_id' => 1]);

В случае, если это происходит из-за отношения многих ко многим между моделямиSubscription и User Вы можете просто сделать (**):

Subscription::find(1)->users()->attach($user->id);

# 2

$check = DB::table('user_verifications')->where('token', 
$verification_code)->first();

Красноречивый эквивалент (***):

$check = UserVerification::where('token', $verification_code)->first();

# 3

$res = DB::table('offers')
    ->where('id', $id)
    ->update(['accepted' => 1]);

Красноречивый эквивалент:

$res = Offer::find($id)->update(['accepted' => 1]); // this will return a boolean.
$offer = Offer::find($id); // this will get the updated record.

(*) Для того, чтобы это работаловам нужна модель Eloquent с именем SubscriptionUser, для которой свойство таблицы установлено в: 'subscription_user'.

(**). Чтобы это работало, вам необходимо установить отношение в моделях .

(***) Чтобы это работало, вам нужна модель Eloquent, называемая UserVerification, со свойством таблицы, установленным в: 'user_verifications'.

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