2016-07-12 3 views
0

Я собираю простую систему покупок, используя Laravel и Vue.js, чтобы продавать фотографии. Каждая фотография поставляется в разных размерах, причем цена каждого размера отличается.Как получить доступ к этому значению в сводной таблице (Laravel)?

У меня есть следующие таблицы:

Photos 
- id 
- title 

Sizes 
- id 
- dimensions 

Photos_Sizes 
- id 
- photo_id 
- size_id 
- price 

Я использую Vue.js делать вызовы API мою корзину контроллер для управления телегой. Он передает photo_id и size_id, когда пользователь нажимает кнопку «Добавить в корзину». Естественно, я хочу взять цену выбранного элемента из базы данных, а не на клиентскую сторону, чтобы предотвратить нахальство, и это, естественно, означает запрос к сводной таблице.

Мой вопрос в том, что с помощью двух идентификаторов, переданных контроллеру, как я могу получить доступ к правильному значению цены в сводной таблице?

ответ

1

Вы можете использовать Query Builder в контроллере, как это:

public function price(Request $request) 
{ 

    $row = DB::table('Photos_Sizes') 
     ->where('photo_id', $request->input('photo_id')) 
     ->where('size_id', $request->input('size_id')) 
     ->first(); 

    return Response::create($row->price, 200); 
} 
0

Об отношениях для обеих фотографий и размеров, добавить ->withPivot('price') Тогда, как только у Вас есть свой набор результатов, вы можете получить доступ к области с $size->pivot->price

+0

Я уже установил свои модели с ценовым шарниром. Я предполагаю, что мой вопрос заключается в том, как я на самом деле _get_ результат, в первую очередь, что я могу получить доступ с $ size-> pivot-> price? – flurpleplurple

+0

Если у вас есть один объект, тогда да, в противном случае вам нужно сначала прокрутить коллекцию. –

Смежные вопросы