2つの関連するデータベーステーブルからデータを表示しようとしていますが、@foreach - 無効な引数が指定されました。誰かが私が間違っていたことを知り、それを修正する方法を知っていますか? nは1辺をbeeingてデータベース「producten」の関係と「voorraad:uは私がモデル「voorraad」と「producten」その1を持って見ることができるようにここでLaravel 5.2 @foreach - 無効な引数が指定されました
は私のコントローラの機能は
public function index()
{
return view('Voorraad.index', [
'voorraads' => Voorraad::all(),
'Products' => Producten::all()
]);
}
です「それらの間の関係のN側を、beeingて
これが私です "Producten "モデル
" これが私のあるモデルclass Voorraad extends Model
// Model Voorraad has the attributes, Aantal and Id;
{
protected $fillable = ['voorraadId','aantal'];
protected $table = 'Voorraad';
public $timestamps = false;
/*
* Voorraad can have multiple products;
*
*/
public function Product()
{
return $this->HasMany('App\Producten', 'Producten_ProductenId');
}
}
" voorraad
class Producten extends Model
{
// model producten holdes the attribues naam, inkoopprijs, verkoopprijs,
protected $fillable = ['productId','naam','inkoopprijs','verkoopprijs'];
protected $table = 'Producten';
public $timestamps = false;
//producten Belongs to "voorraad"
public function voorraad()
{
return $this->belongsTo('App\Voorraad', 'producten_productenId');
}
}
、これは私が上で私のデータベースモデルを表示するビューです:
@foreach($voorraads as $voorraad)
<tr>
<td>{{$voorraad->voorraadId}}</td>
<td>{{$voorraad->aantal }}</td>
@foreach($voorraad->producten as $products)
<td>{{ $products->Naam }}</td>
<td>{{ $products->InkoopPrijs }}</td>
<td>{{ $products->VerkoopPrijs }}</td>
@endforeach
<td></td>
<td></td>
</tr>
@endforeach
This is my migration for the voorraad Table
public function up()
{
Schema::create('voorraad', function(blueprint $table)
{
$table->increments('id');
$table->string('naam');
$table->foreign('Locaties_Id')
->reference('Id')
->on('locaties')
->onDelete('cascasde');
$table->foreign('Producten_Id')
->reference('Id')
->on('producten')
->onDelete('cascade');
});
}
、これはproductenテーブル
public function up()
{
Schema::create('producten', function(blueprint $table)
{
$table->increments('id');
$table->decimal('inkoopprijs', '10, 2');
$table->decimal('verkoopprijs', '10, 2');
$table->foreign('Fabrieken_Id')
->reference('Id')
->on('fabrieken')
->onDelete('cascasde');
});
}
動作するはずですあなたは、モデル内のメソッドを変更した場合
@foreach($voorraad->producten as $products)
を呼び出すことで関係にアクセスしようループされている実際のデータが提供されていない限り、foreachの何が問題なのかを知ることは不可能に近づきます。つまり、 '$ voorraads'をダンプして質問に追加します。 – Andrew