我想在2张Laravel表中显示一列

时间:2018-05-09 15:10:12

标签: laravel-5 controller datatables inner-join laravel-blade

我有两张桌子:

教师和用户 我想为每位教师显示同一位老师的用户名。

我知道在控制器中可以使用内连接来完成:

$users= DB::table('teachers')
->select('name')
->join('users', 'users.id', '=', 'teachers.id')
->get();  

但是在刀片模板中,当我这样做时,我不知道如何为每位老师展示

<a class="ahref" href={{route('users')}}> <div class="blueDecor">

         <p style="text-transform: uppercase;"> {{$teacher->name}} </p>

        </div>
    </a>

以及{{route(&#39; users&#39;)}}的时间:

   @foreach($users as $user)

{{$ user-&gt; name}}

       @endforeach

这里显示所有教师显示所有用户

例如,

老师: 当我点击Theodor来展示Anna,Maria。

Theodor -----------------------&gt;用户:Anna,Maria

亚历山大----------------------&GT;用户:Sofia,Alex,Patrick

萨拉--------------------------&GT;用户:Rick,George

请帮助我:(

1 个答案:

答案 0 :(得分:3)

您需要使用laravel关系来实现此目的 在您的情况下,它将是2个模型(用户和教师)之间的一对一关系。

请浏览以下链接 https://laravel.com/docs/5.6/eloquent-relationships#one-to-one

您需要在两个模型中定义关系。比如说你的

用户表型号名称为Users

教师表型号名称是教师

在用户

中创建一个关系
public function UserTeacher()
{
 return $this->hasOne("\App\Models\Teachers","id","id");
}

在教师中创建一个关系

public function TeacherUser()
{
 return $this->hasOne("\App\Models\Users","id","id");
}

您可以访问以下数据

$data = Users::with('UserTeacher')->get();

将$ data变量传递给刀片文件并访问它:

{{$data->UserTeacher->name}}

我尝试根据您提供的有限数据创建示例,您可以相应地更改它。