2015-12-30 4 views
1

Я создал сводную таблицу, содержащую таблицы таблиц, которые я хочу связать. Когда у меня есть идентификатор определенного элемента, теперь я хочу получить последнюю запись этого элемента, сохраненную в сводной таблице. Например:Laravel Eloquent ManyToMany getLatest

Table 1: Tickets 
Table 2: Status 
Table 3: Ticket_Status (Pivot) 

Если добавить новую запись в сводной таблице, я бы что-то вроде этого:

Pivot

TicketID, StatusID

1, 2 

1, 3 

2, 1 

Теперь я хочу получить последний статус в своде для билета Id 1 для Например, я ожидаю получить statusId 3 для билета 1. Но как это сделать в Laravel?

Создание записей для сводной таблицы работы:

public function attachDispatchStatus($id) { 
    $this->status()->attach($id); 
    $this->touch(); 
} 

// set fields on the eloquent object and save to database 
// raise event that the incident was created. 
public function createDispatch($command) { 

    // Get BodyContent from POST Request 
    $this->dispatchReference = $command->dispatchReference; 
    $this->incidentReference = $command->incidentReference; 

    // Create new Dispatch 
    $dispatch = Dispatch::create(array(
     'dispatch_reference' => $this->dispatchReference, 
     'incident_reference' => $this->incidentReference 
    )); 
    $dispatchStatus = DispatchStatus::where('status', '=', 'processing')->first(); 
    $dispatch->attachDispatchStatus($dispatchStatus->id); 

    return $this; 
} 

ответ

0

Почему вы не использовать updateExistingPivot($roleId, $attributes); доступны в Laravel 5 при редактировании билеты?

Это позволит решить вашу проблему и сделать вашу базу данных легче :)

Проверить Larvel Doc для некоторых примеров на сводной таблице.

Если вы не хотите, чтобы это было так (потому что вы хотите сохранить историческую информацию о своем вводе), я думаю, вам придется добавить поле даты в свою сводную таблицу ... Затем просто закажите дата, и все будет хорошо.

+0

Я вижу ... Да. Мне нужна история, чтобы изменить статус на проспекте. – sesc360

+0

Итак, вы должны добавить поле updated_at в сводную таблицу. Тогда все будет легко. – Jiedara

+0

Jup .. у меня есть, что добавил. Но есть ли метод laravel, который я могу использовать, поэтому последняя запись для определенного идентификатора извлекается из точки опоры? – sesc360