php - 未定义的属性:Illuminate\Database\Eloquent\Relations\HasOne::$user_id
问题描述
我只是laravel的初学者,对不起,如果这是一个愚蠢的问题
这是我的控制器:-
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
use App\Profile;
use Auth;
class ProfilesController extends Controller
{
public function _construct()
{
$this->middleware('auth');
}
public function create()
{
return view('bio');
}
public function store(Request $request)
{
auth()->user()->profile()->user_id;
// create Bio
$profile = new Profile;
$profile->bio = $request->input('bio');
$profile->save();
return redirect('/home');
}
}
这是我的模型:-
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Profile extends Model
{
protected $gaurded = [];
protected $fillable = ['user_id', 'bio'];
public function user()
{
return $this->belongsTo(User::class);
}
}
这是我的桌子
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Profile extends Model
{
protected $gaurded = [];
protected $fillable = ['user_id', 'bio'];
public function user()
{
return $this->belongsTo(User::class);
}
}
这是我的用户模型:-
public function profile()
{
return $this->hasOne(Profile::class);
}
public function posts()
{
return $this->hasMany(Posts::class);
}
我收到此错误“未定义的属性:Illuminate\Database\Eloquent\Relations\HasOne::$user_id”我不知道我哪里出错了请帮助我并指导我,如果你能 谢谢
解决方案
您不能在user_id
上调用该属性Illuminate\Database\Eloquent\Relations\HasOne
profile()
,
你可以调用它auth()->user()->profile->user_id
。
但是,该用户还没有个人资料。需要创建它并使用create方法Illuminate\Database\Eloquent\Relations\HasOne
,Laravel 会自动将 foreign_key 构建user_id
到profile
.
public function store(Request $request)
{
auth()->user()->profile()->create([
'bio' => $request->input('bio')
]);
return redirect('/home');
}
推荐阅读
- javascript - 如何(我可以?)根据请求数据在拦截器中加载赛普拉斯夹具?
- javascript - 在map函数中不断初始化Datatable
- java - 如何在 RHPAM 中创建角色特定的流程实例表单
- selenium-webdriver - 将多个外部数据集与黄瓜/硒测试环境相结合
- ebay-api - eBay Browse API 将 category_id 的数量限制为 1,但文档说您可以添加多个 category_id
- sql - Oracle SQL 执行计划差异
- python - youtube_dl.utils.DownloadError:错误:找不到 ffprobe/avprobe 和 ffmpeg/avconv。请安装一个。安装错误
- flutter - Flutter 单元测试 - 期望 SuccessState 之间的差异
和成功状态 - javascript - 开玩笑从文件中调用默认模拟
- bash - bash 脚本中有没有一种方法可以选择提供参数,但它不应该是必须的?