gpt4 book ai didi

php - 未定义的属性:Illuminate\Database\Eloquent\Relations\HasOne::$user_id

转载 作者:行者123 更新时间:2023-12-02 01:30:44 24 4
gpt4 key购买 nike

我只是 Laravel 的初学者,抱歉,如果这是一个愚蠢的问题

这是我的 Controller :-

<?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”我不知道我哪里出错了,请帮助我并指导我,如果你可以谢谢

最佳答案

您无法在 Illuminate\Database\Eloquent\Relations\HasOne profile() 上调用属性 user_id

您可以通过auth()->user()->profile->user_id来调用它。

但是,该用户还没有个人资料。需要创建它并使用 createIlluminate\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');
}

关于php - 未定义的属性:Illuminate\Database\Eloquent\Relations\HasOne::$user_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60894009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com