【问题标题】:how to get and display my site name from other table (laravel)如何从其他表中获取和显示我的站点名称(laravel)
【发布时间】:2014-05-17 22:26:29
【问题描述】:

我想创建一个能够列出用户拥有管理员权限的所有站点的视图。

如何在视图中传递和显示站点名称? 假设我是 id 为 1 的用户,视图将显示我拥有管理员权限的站点名称。

我使用 people_site (admins) 表来记录所有权限。

sites table:
--------------------
id  | site_name | address 
101 | ABC       | 2131
102 | CDE       | 23212
103 | EFG       | 23231
104 | HIJ       | 1234

peoples table:
--------------------
id  | first_name | last_name | paswword
1   | Alex       | Lee       | *******
2   | Bryan      | John      | ******* 

people_site (Admin )table:
--------------------
id  | people_id | site_id
101 | 1         | 101
102 | 1         | 102
103 | 2         | 103
104 | 1         | 104
105 | 2         | 101

控制器:

public function getManage(){
    return View::make('account.manage')
        ->with('admins', Admin::where('people_id', '=', Auth::user()->id)->orderBy('updated_at', 'desc')->get());
}

查看:

<ul>
    @foreach($admins as $admin)
    <li><a href="">{{$admin->id}} </a></li>
    @endforeach
</ul>

**人物模型:**

public function sites(){
    return $this->hasMany('Site');
}

网站模型:

public function peoples(){
    return $this->belongsToMany('People');
}

【问题讨论】:

    标签: php laravel eloquent


    【解决方案1】:

    对于使用 id 的用户类型有一个额外的列对于用户类型/管理员和普通用户来说是不好的,您可以根据 type ="admin" 的列类型进行检索,希望您明白我在说什么。

    【讨论】:

    • 嗨Shadow,实际上people表有更多属性,比如密码等,现在我添加了。我认为这是多对多的关系,其中 1 个人可以拥有多个网站进行管理,而 1 个网站可以拥有很多人作为管理员
    【解决方案2】:

    假设视图有多个用户和多个站点

    <ul>
      @foreach($admins as $admin)
        <li><a href="">{{ $admin->id }} </a></li>
        <li>
          <ul>
            @foreach($admin->sites as $site)
              <li><a href="site/{{ $site->id }}">{{ $site->site_name }} </a></li>
            @endforeach
          </ul>
        </li>
      @endforeach
    </ul>
    

    【讨论】:

      猜你喜欢
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 2013-11-01
      • 2014-04-16
      • 1970-01-01
      • 1970-01-01
      • 2013-03-03
      • 2012-12-20
      相关资源
      最近更新 更多