我遇到外键问题,特别是我想使用外键获取表数据,我的代码看起来像。
// Migration foo
public function up()
{
Schema::create('foo', function(Blueprint $table)
{
// Default index laravel uses.
$table->increments('id');
$table->integer('bar_id')->unsigned();
$table->text('fake_date')
// Default timestamps
$table->timestamps();
// Foreign Key
$table->foreign('bar_id')->references('id')->on('bars')->onDelete('cascade')->onUpdate('cascade');
});
}
public function down()
{
Schema::drop('foo');
}
// Migration bar
public function up()
{
Schema::create('bar', function(Blueprint $table)
{
// Default index laravel uses.
$table->increments('id');
$table->string('name'); // I want to retrieve this data
});
}
public function down()
{
Schema::drop('bar');
}
我的foo模特:
class Record extends \Eloquent {
protected $table = 'foo';
public function bar()
{
return $this->belongsTo('Bar');
}
}
我的酒吧模特:
public function foo()
{
return $this->hasMany('Foo');
}
}
到目前为止,我想打印出“' name'在使用foo的视图中的表格栏内。 我在路径foo里面有一个名为show.blade.php的视图,我试过{{$ foo-> bar() - > name}},我收到语法错误:调用未定义的方法Illuminate \ Database \ Query \ Builder :: patients()
为了澄清我试图在bar中发布值名称的值。所以我有一个
的刀片文件// views/plays/show.blade.php
<p> {{$foo->bar()->name }} </p>
答案 0 :(得分:0)
在控制器中传递订单值的地方,
$foos=Foo::with('bar')->where(your_condition)->get();
然后访问刀片中的值
@foreach($foos as $foo)
<p>{{ $foo->bar->name }}</p>
@endforeach
答案 1 :(得分:-2)
找到解决方案,错误的语法,你不需要()在bar之前,发布你只需做的名字{{$ foo-&gt; bar-&gt; name}}