我正在尝试获取创建帖子女巫的用户名是(问题模型),我不知道出了什么问题我在 laravel 文档中尝试了Eager Loading ,我已经检查了这些问题 1 问题 2并且仍然为 null 或者Trying to get property 'name' of non-object如果我用dd( $problem->user->name);我使用 laravel 5.8问题Controller.phpnamespace App\Http\Controllers;use Illuminate\Http\Request;use App\User;use App\Problems ;use App\Rules\Checkbox;use Validator;[...] public function index() { //$users_row_num = User::count(); // $problems_row_num = Problems::count(); $problems = Problems::all(); foreach ($problems as $problem) { /* Here should get name to send with view but I get null * if I try $problem->user->name I get Trying to get property 'name' of non-object because user is null */ dd( $problem->user); } return view('problems.index', [ 'problems' => $problem, 'user_numder' => $users_row_num, 'problem_number' => $problems_row_num, ]); }[...]Problems.php(模型)<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class Problems extends Model{ public function user() { return $this->belongsTo('App\User'); }}Usre.php(模型)<?phpnamespace App;use Illuminate\Notifications\Notifiable;use Illuminate\Contracts\Auth\MustVerifyEmail;use Illuminate\Foundation\Auth\User as Authenticatable;class User extends Authenticatable{[...] public function problem() { return $this->hasMany('App\Problems'); }[...]}index.blade.php @foreach ($problems as $problem) <tr> <td>{{ $problem->accountNumber }}</td> <td>{{ $problem->accountName }}</td> <td>{{ $problem->accountEmail }}</td> <td>{{ $problem->date }}</td> <td>{{ $problem->problem }}</td>我想用来$problem->user->name获取创建帖子的用户的名称以将其显示在表格中
1 回答
神不在的星期二
TA贡献1963条经验 获得超6个赞
您的用户模型正在问题表中寻找一个user_id字段以使关系正常工作。Laravel 使用模型名称 + '_id' 自动为模型关系创建使用蛇形案例的关系。
如果您将问题表上的外键更改为,user_id而不是addedBy,这将按原样工作。
或者,如果您希望保留addedBy密钥,则需要告诉 Laravel 您使用的是非标准密钥。因此,在您的用户模型上:
public function problem()
{
return $this->hasMany('App\Problems', 'addedBy');
}
应该做的伎俩。请参阅此处的文档。
不幸的是,您可能还没有在桌子上定义实际的 FK。在foreign指定之前,我希望看到如下内容:
$table->unsignedInteger('user_id');
$table->foreign('user_id')->references('id')->on('users');
或者如果使用更新版本的 Laravel:
$table->unsignedBigInteger('user_id');
$table->foreign('user_id')->references('id')->on('users');
迁移文档在此处适用于V6 。
- 1 回答
- 0 关注
- 90 浏览
添加回答
举报
0/150
提交
取消