有人可以帮助我与Laravel建立关系吗?我有数据库结构
poliklinik Table
===========
id
nama_poliklinik
****************
jadwal_poliklinik Table
=======================
id
poliklinik_id
hari
***********************
关系是“一个” polikinik“有很多” jadwal_poliklinik
我的模特poliklinik是
namespace App;
use Illuminate\Database\Eloquent\Model;
use App\jadwal_poliklinik;
class poliklinik extends Model
{
protected $table = 'poliklinik';
public function jadwal_poliklinik()
{
return $this->hasMany(jadwal_poliklinik::class);
}
}
我的jadwal_poliklinik模型
namespace App;
use Illuminate\Database\Eloquent\Model;
use App\poliklinik;
class jadwal_poliklinik extends Model
{
protected $table = 'jadwal_poliklinik';
public function poliklinik()
{
return $this->belongsTo(poliklinik::class);
}
}
我的控制器是
public function jadwal()
{
$poliklinik = poliklinik::all();
return view('jadwal', compact('poliklinik'));
}
和视图
<div class="row">
@foreach($poliklinik as $p)
<div class="col-md-4 animate-box">
<div class="blog-entry">
<a href="blog.html" class="blog-img" style="background-image: url(images/blog-1.jpg);"></a>
<div class="desc">
<h3>{{$p->nama_poliklinik}}</h3>
<hr/>
@foreach($poliklinik->jadwal_poliklinik as $jp)
{{$jp->hari}}<br/>
@endforeach
</div>
</div>
</div>
@endforeach
</div>
但结果是
例外属性[jadwal_poliklinik]在此不存在集合实例。
有人可以帮我吗?
必须为$p->jadwal_poliklinik
@foreach($p->jadwal_poliklinik as $jp)
{{$jp->hari}}<br/>
@endforeach
但是,如果可以使用CamelCase作为类名,则更好。那是标准。您可以简单地使用artisan命令来创建类。有关更多详细信息,请参见波纹管链接。
为了使用该关系,您应该首先加载它...
您可以使用'with'方法加载它:
public function jadwal()
{
$poliklinik = poliklinik::with('jadwal_poliklinik')->all();
return view('jadwal', compact('poliklinik'));
}
现在刀片中的代码应该可以工作了..
有关渴望加载的更多详细信息,在:
https://laravel.com/docs/7.x/eloquent-relationships#eager-loading