У меня есть проблема одна Produk есть много `spesifikasi» что-то вроде этого примераLaravel дисплей многие спецификации в одном продукте
Produk 1
Spek a
Spek b
Spek c
Produk 2
Spek x
Spek y
с этим кодом
мой контроллер
public function getDashboard() {
$produk = Produk::all();
$spesifikasi = SpesifikasiProduk::all()->take(2);
return View::make('admin-page.admin-produk')
-> with('produk', $produk)
-> with('spesifikasi', $spesifikasi);
}
мой взгляд
@foreach ($produk as $produk)
<tr>
<td>{{ $produk['nama_produk']}}</td>
<td>{{ substr($produk['deskripsi'], 0, 130).' . . .' }}</td>
<td>
@foreach ($spesifikasi as $spek)
{{ $spek['title_spek'] }} : {{ $spek['spek'] }} ||
@endforeach
</td>
<td><img src="../{{ $produk['display_thumb'] }}"></td>
я получаю неправильный результат
это стало чем-то вроде этого
Produk 1
Spek a
Spek b
Spek c
Spek x
Spek y
Produk 2
Spek a
Spek b
Spek c
Spek x
Spek y
я получить Лил ключ где я отсутствующий
в Еогеасп spesifikasi (вид) я должен дать некоторое условие
, но я не» знаю, как это исправить
моя структура базы данных, как это
produk { id_produk, nama_produk, deskripsi, dispaly_thumb, created_at, updated_at}
produk_spek { id_spek, id_produk, title_spek, spek, created_at, updated_at }
обновление Армен Markossyan
это моя модель
Produk.php
<?php
class Produk extends Eloquent {
protected $table = 'produk';
protected $primaryKey = 'id_produk';
protected $fillable = array('id_produk', 'nama_produk', 'deskripsi', 'display_thumb');
public function SpesifikasiProduk() {
return $this->hasMany(new SpesifikasiProduk, 'id_produk');
}
public function ImageProduk() {
return $this->hasMany(new ImageProduk, 'id_produk');
}
}
SpesifikasiProduk.php
<?php
class SpesifikasiProduk extends Eloquent {
protected $table = 'produk_spek';
protected $primaryKey = 'id_spek';
protected $fillable = array('id_produk', 'title_spek', 'spek');
public function produk() {
return $this->belongsTo('Produk');
}
}
и я уже измениться, чтобы стать, как это
Мой контроллер
public function getDashboard() {
$produk = Produk::with('SpesifikasiProduk')->all();
return View::make('admin-page.admin-produk')
-> with('produk', $produk);
}
Мой Посмотреть
@foreach ($produk as $produk)
<tr>
<td>{{ $produk['nama_produk'] }}</td>
<td>{{ substr($produk['deskripsi'], 0, 130).' . . .' }}</td>
<td>
@foreach ($produk->SpesifikasiProduk as $spek)
{{ $spek['title_spek'] }} : {{ $spek['spek'] }} ||
@endforeach
</td>
@endforeach
, но я все еще получаю ошибку, как этот
Call to undefined method Illuminate\Database\Query\Builder::all()
, что я не хватает?
расширенный * можно создать новый поток
public function SpesifikasiProduk() {
return $this->hasMany(new SpesifikasiProduk, 'id_produk')->take(2);
}
Пусть говорят Produk А имеет 4 Spesification
Produk B имеет 3 Spesification
Produk Chas 5 Spesification
с выше кодом , это дает результат примерно так
Produk A
- spek 1
- spek 2
Produk B
produk C
если я изменить take
значение 6 результат
Produk A
- spek 1
- spek 2
- spek 3
- spek 4
Produk B
- spek 1
- spek 2
produk C
благодарит вас за ответ, но я все еще получаю сообщение об ошибке .... см. Мое сообщение для обновления – Neversaysblack
i change -> all() to -> get() и все работает гладко спасибо – Neversaysblack
hm ... я запутался как ограничить принимать только 2 "spesifikasi" .... если я использовал $ produk = Produk :: с ('SpesifikasiProduk') -> get() - take (2); это просто взять 2 produk только..не spesifikasi – Neversaysblack