2013-08-16 3 views
0

Мне нужно объединить две таблицы по моему запросу.Объединение двух таблиц на Eloquent

Структура базы данных

Products 
    .id 
    .image 
    .category_id (points to categories.id) 

Categories 
    .id 
    .category_name 
    .category_directory_name 

Изображения находятся в category_directory_name директории, так что мне нужно, чтобы установить связь между этими двумя таблицами, так что я могу получить category_directory_name каждого product.

Нечто подобное;

<img src="{{ URL::to('uploads/categories/' . $v->category_directory_name . '/' . $v->image') }}"> 

Как я могу это сделать?

Ps. Мои табличные и столбцовые имена являются локальными, поэтому я не использую встроенные функции Laravel и Eloquent. Я хочу сам определить имена таблиц и столбцов.

+0

Так вы пытаетесь строить отношения, используя Eloquent , но не используя встроенные механизмы Eloquent? Я не уверен, что вы подразумеваете под вашими именами «местные»? – fideloper

+0

Например, модель Eloquent можно назвать «продуктом», и она автоматически укажет на таблицу «Продукты». Моя таблица и столбец написаны на другом языке, поэтому использование встроенных функций Eloquent не будет работать. – Aristona

+0

Интересно - можете ли вы привести конкретный пример здесь? Не работает ли другой язык из-за ошибки кодирования utf8? – fideloper

ответ

3

На модели продукта вы должны сделать

public function category() { 

    return $this->belongsTo('Category'); 

} 

В контроллере:

public function index() { 

    $product = Product::find(1); 

    return View::make('yourViewName')->with('product', $product); 

} 

На ваш взгляд:

<img src="{{ URL::to('uploads/categories/' . $product->category->category_directory_name . '/' . $product->image') }}"> 
+0

Этот * должен * быть ответом, но я в замешательстве на языке «ограничение» в комментариях OP. – fideloper

+1

@fideloper: Да, это так. У меня было 3 минуты, прежде чем я смог выбрать это как правильный ответ. AntonioCarlosRiberio: Спасибо большое! – Aristona

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