Laravel关系表显示

时间:2018-05-27 18:41:56

标签: php laravel relationship

我是laravel的新手并且致力于建立人际关系 我有一个电话簿,它有一个客户端,所以当我插入数据时,我添加一些客户端ID,如何我在电话簿视图中获取客户端名称,当我显示电话簿列表,我想得到客户端对象和显示它的名称就像这个$ client->标题 这是我的代码也许我不能用文字定义它:) 这是我的PhonebookController

if

这是电话簿型号

public function index()
{

    $phonebooks = Phonebook::all();
    $client = Phonebook::find(?dont know if its right place for it?)->client;
    return view('admin.phonebooks.index',compact('phonebooks',$phonebooks),compact('client',$client));
}

这是我的电话簿数据库迁移

class Phonebook extends Model{
protected $fillable = ['title','description','client_id','calldate','rememberdate'];
public function client() {
    return $this->hasOne('App\Client','id');
}    }

和客户端数据库迁移

Schema::create('phonebooks', function (Blueprint $table) {
        $table->increments('id');
        $table->text('title');
        $table->longText('description');
        $table->integer('client_id');
        $table->dateTime('calldate');
        $table->dateTime('rememberdate');
        $table->timestamps();
    });

最后这里是视图

 Schema::create('clients', function (Blueprint $table) {
        $table->increments('id');
        $table->text('title');
        $table->longText('description');
        $table->integer('fax');
        $table->text('adrress1');
        $table->integer('telephone1');
        $table->timestamps();
    });

1 个答案:

答案 0 :(得分:1)

如果客户端有多个电话簿条目(和电话簿belongsTo客户端),那么你需要在电话簿表上有一个client_id列

然后在客户端模型中

public function phonebooks()
{
    return $this->hasMany(App\Phonebook::class);
}

在电话簿型号中

public function client()
{
    return $this->belongsTo(App\Client::class);
}

在控制器中

    $phonebooks = Phonebook::with('client')->get();
    return view('admin.phonebooks.index',compact('phonebooks'));
}

您的$ phonebook模型都将具有->client关系,因此在视图中

<td>{{$phonebook->client->title}}</td>