如何从Laravel 5.8中的另一个表中调用数据

我有两个表格,一个用于“模型”,另一个用于“投票”,我想通过投票获得模型名称(投票字段=模型ID)


投票迁移表


public function up()

{

    Schema::create('votantes', function (Blueprint $table) {

        $table->increments('id');

        $table->string('nome', 100);

        $table->string('email', 60)->unique();

        $table->integer('voto')->unsigned();

        $table->timestamps();         


        $table->foreign('voto')->references('id')->on('candidatas')->onDelete('restrict');

    });

}

投票模型


<?php


namespace App;


use Illuminate\Database\Eloquent\Model;

use App\Candidata;


class Votante extends Model

{

    protected $fillable = ['nome', 'email', 'voto'];


    public function candidata() 

    {

        return $this->belongsTo('App\Candidata');

    }

}

型号迁移表


public function up()

{

    Schema::create('candidatas', function (Blueprint $table) {

        $table->increments('id');

        $table->string('nome', 100);

        $table->string('clube', 60);

        $table->string('foto', 100);

        $table->timestamps();

    });

}

我的控制器


public function votacao()

{

    $linhas = Votante::orderBy('nome')->get();

    // dd($linhas);


    return view('votacao', ['linhas' => $linhas]);

}

我要在其中显示投票成员,电子邮件和model_name的刀片文件


<table class="table table-hover">

    <thead>

      <tr>

        <th>Cód Votante</th>

        <th>Nome Votante</th>

        <th>Modelo Escolhida(Cód)</th>

        <th>e-mail</th>

      </tr>

    </thead>

    @foreach ($linhas as $linha)

    <tr>

      <td> {{ $linha->id }} </td>

      <td> {{ $linha->nome }} </td>

      <td> {{ $linha->candidata->nome }} </td>

      <td> {{ $linha->email }} </td>


    @endforeach

我要记录投票项,并从该数据在另一个窗口中显示投票者的姓名,电子邮件和模型的名称。


当前整个列表工作正常,唯一的障碍是显示模板的名称,而不是在投票表中注册的“ id”。


慕慕森
浏览 196回答 2
2回答

慕丝7291255

如果您的父模型不使用id作为其主键,或者您希望将子模型连接到其他列,则可以将第三个参数传递给belongsTo方法,以指定父表的自定义键public function candidata()&nbsp;{&nbsp; &nbsp; return $this->belongsTo('App\Candidata','voto','id');}检查此链接
打开App,查看更多内容
随时随地看视频慕课网APP