Laravel 5.0 получает идентификатор строки, вставленной в сводную таблицу после присоединения - PullRequest
0 голосов
/ 09 мая 2019

У меня есть информационный бюллетень и блочная модель, которая имеет отношение многие ко многим.Когда я присоединяю блок к новостной рассылке, мне нужен идентификатор строки, которая была вставлена ​​в сводную таблицу.

Это то, что я пробовал, но в результате получается "null"

$newsletter = Newsletter::findOrFail($newsletterId);
$newsletterBlock = $newsletter->blocks()->attach($blockId);
dd($newsletterBlock);

Ответы [ 2 ]

0 голосов
/ 09 мая 2019

Я мог бы быть на совершенно неверном пути, но:

DB::table('your_pivot_table')
    ->select('id')
    ->where('block_id', $blockId)
    ->where('newsletter_id', $newsletterId)
    ->first();

Но я до сих пор не понимаю, зачем вам нужен столбец id. Вы можете однозначно идентифицировать столбец по их block_id и newsletter_id, поскольку эта комбинация не будет существовать во второй раз.

0 голосов
/ 09 мая 2019

Попробуйте, не проверяйте, но это должно работать:

/** Newsletter.php */
public function blocks()
{
    return $this->belongsToMany('App\Block')
            ->withPivot('id');
}

Тогда в вашем контроллере:

$newsletter = Newsletter::findOrFail($newsletterId);
$newsletter->blocks()->attach($blockId);

// then you could:
foreach($newsletter->blocks as $block)
{
    dd($block->pivot->id);
}

Отметьте этот раздел документов.

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