【发布时间】:2014-11-16 07:06:07
【问题描述】:
大家好,我是 Laravel 4 PHP 框架的新手,我只知道一点。只是想问一下如何急切加载 3 个表(或更多)并为视图提供一种干净的方式访问变量(我有一个表用户、配置文件和状态)
**Users Table**
id (int) ai
code (varchar)
email_id (int) ref to email table
username (varchar)
password (varchar)
softdeletes, timestamps, remember token laravel defaults
**Profile Table**
id (int) ai
user_id (int) index ref to users table
lastname (varchar)
firstname (varchar)
middlename (varchar)
birthdate (date)
and more...
laravel defaults...
**Statuses Table**
id (int) ai
user_id (int) index ref to users table
message (text)
laravel defaults...
laravel 提供的 User 模型我只是添加了一个公共函数配置文件和状态
<?php
class User extends \Eloquent {
......
public function profile()
{
return $this->hasOne('Profile');
}
public function statuses()
{
return $this->hasMany('Status');
}
}
配置文件和状态模型
class Profile extends \Eloquent {
public function user()
{
return $this->belongsTo('User');
}
}
class Status extends \Eloquent {
public function user()
{
return $this->belongsTo('User');
}
}
在我的 HomeController 索引方法中,我声明了一个像这样的变量 $user。
$user = User::with('profile', 'statuses')->whereId( Auth::id() )->first();
$statuses = $user->statuses;
然后我将状态压缩到我的视图中,然后运行一个
@foreach($statuses as $status)
{{ $status->user->profile->firstname; }}
{{ $status->message; }}
@endforeach
但我遇到了一个错误。
谢谢:)
【问题讨论】:
标签: php laravel laravel-4 blade