繁体   English   中英

我如何从Laravel中的多个相关表中获取数据

[英]how can I get data from multiple related tables in Laravel

我有三个表:事件-管理员-依赖关系它们之间的关系如下:依赖关系有很多管理员,一个管理员有很多事件

像那样: 在此处输入图片说明

我试图显示创建事件的管理员所属的依赖项的名称。 如何使用这三个表的Laravel数据?

控制器:

class WelcomeController extends Controller
{
    public function evento($slug){
        $event = Event::where('slug', $slug)->first();
        return view('evento', compact('event'));
    }

事件模型:

class Event extends Model
{

    protected $fillable = [
        'admin_id', 'place_id', 'name', 'slug', 'excerpt', 'body', 'status', 'file'
    ];

    public function admins(){
        return $this->belongsTo('App\Admin', 'admin_id');
    }

管理员模型:

protected $fillable = [
        'name', 'email', 'password', 'cargo', 'dependence_id'
    ];

    public function dependencyAdmin(){
            return $this->belongsTo(Dependence::class);
        }

依赖模型:

class Dependence extends Model
{

    protected $fillable = [
        'name', 'slug'
    ];

    public function adminsDependence(){
        return $this->hasMany(Admin::class);
    }

因此,我尝试在视图中显示它,但是它不起作用:

 <div class="panel-heading"> 
                Dependencia: 
                <a href="#">{{$event->admins->dependencyAdmin->name}}</a>
            </div>

问题在于您只在检索事件模型而不加载关系。 看到这里更多的解释

$event = Event::where('slug', $slug)->first();
$eventAdmins = $event->admins()->get();
$eventAdminDependency = $eventAdmins->dependencyAdmin()->get();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM