我只是拉拉威尔的初学者,如果这是个愚蠢的问题,对不起
,这是我的控制器:-
<?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);
}我得到了这个错误“未定义的属性:,我不知道我哪里出错了,请帮助我,如果你能,感谢,请帮助我并指导我。
发布于 2020-03-28 08:37:16
不能调用属性user_id on Illuminate\Database\Eloquent\Relations\HasOne profile(),
你可以用auth()->user()->profile->user_id来称呼它。
但是,用户还没有配置文件。如果需要在Illuminate\Database\Eloquent\Relations\HasOne上创建并使用Illuminate\Database\Eloquent\Relations\HasOne方法,Laravel将自动构建foreign_key user_id to profile。
public function store(Request $request)
{
auth()->user()->profile()->create([
'bio' => $request->input('bio')
]);
return redirect('/home');
}发布于 2020-03-28 04:12:22
在您的配置文件模型中
public function profile()
{
return $this->hasOne(Profile::class,"user_id","id");
}在你的控制器里
public function store(Request $request)
{
echo $id = auth()->user->profile->user_id;
$input = $request->all();
$input['user_id'] = auth()->id(); // OR auth()->user->profile->user_id;
Profile::create($input);
return redirect('/home');
}发布于 2020-03-27 22:51:13
您需要在用户模型中定义外键和本地密钥,如下所示:
public function profile()
{
return $this->hasOne(Profile::class,"user_id","id");
}https://stackoverflow.com/questions/60894009
复制相似问题