我有兩個模型User和AccountTypeclass User extends Authenticatable{ (...) public function accountType() { return $this->belongsTo('App\AccountType', 'account_type_id', 'id'); }}class AccountType extends Model{ protected $table = 'account_types'; // protected $primaryKey = 'id'; public function users() { return $this->hasMany('App\User'); }}我的數據庫: Schema::create('users', function (Blueprint $table) { $table->bigIncrements('id'); $table->bigInteger('account_type_id')->unsigned(); $table->foreign('account_type_id')->references('id')->on('account_types'); $table->string('full_name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); Schema::create('account_types', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('account_type_name'); });當我使用 hasMany 時 - 一切都像魅力一樣,但是當我嘗試使用$user->accountType->account_type_name它時卻不起作用。我用來打印用戶的循環: @foreach ($users as $user) <tr> <td>{{ $user->full_name }}</td> <td> <a href="#" class="badge badge-pill badge-warning">No team</a> </td> <td> xyz </td> <td> {{ $user->accountType->account_type_name }} </td> <td><a href="mailto:{{ $user->email }}">{{ $user->email }}</a></td> <td>{{ $user->created_at }}</td> </tr> @endforeach和錯誤。當我注釋掉$user->accountType->account_type_name它時, 它工作正常。ErrorExceptionUndefined offset: 1詳情在這里 - https://flareapp.io/share/jKPgOZPa
3 回答

函數式編程
TA貢獻1807條經驗 獲得超9個贊
看起來你定義了錯誤的關系。你的用戶模型應該是這樣的:
class User extends Authenticatable
{
(...)
public function accountType()
{
return $this->hasOne('App\AccountType', 'account_type_id', 'id');
}
}
和帳戶類型模型應該是這樣的:
class AccountType extends Model
{
protected $table = 'account_types';
// protected $primaryKey = 'id';
public function user()
{
return $this->belongsTo('App\User');
}
}
- 3 回答
- 0 關注
- 179 瀏覽
添加回答
舉報
0/150
提交
取消