Php 试求非对象雄辩关系的性质
我已经在App\Post.php文件中编写了这段代码Php 试求非对象雄辩关系的性质,php,laravel,compiler-errors,Php,Laravel,Compiler Errors,我已经在App\Post.php文件中编写了这段代码 public function user(){ return $this->belongsTo('App\User'); } 我在routes.php中编写了它 Route::get('/{id}', function($id){ return Post::find($id)->user->name; }); public function posts(){ return $this-&g
public function user(){
return $this->belongsTo('App\User');
}
我在routes.php中编写了它
Route::get('/{id}', function($id){
return Post::find($id)->user->name;
});
public function posts(){
return $this->hasMany(Post::class);
}
public function user(){
return $this->belongsTo(User::class);
}
public function user()
{
return $this->belongsTo('App\User', 'the_foreign_key_Post_in_users', 'primary_key_in_Post');
}
public function post(){
return $this->hasMany('App\Post','the_foreign_key_POst_in_users');
}
当我去测试代码时,我得到了以下错误
正在尝试获取非对象的属性
嗯。让我们重新定义您的模型
In-App\User.php
Route::get('/{id}', function($id){
return Post::find($id)->user->name;
});
public function posts(){
return $this->hasMany(Post::class);
}
public function user(){
return $this->belongsTo(User::class);
}
public function user()
{
return $this->belongsTo('App\User', 'the_foreign_key_Post_in_users', 'primary_key_in_Post');
}
public function post(){
return $this->hasMany('App\Post','the_foreign_key_POst_in_users');
}
In-App\Post.php
Route::get('/{id}', function($id){
return Post::find($id)->user->name;
});
public function posts(){
return $this->hasMany(Post::class);
}
public function user(){
return $this->belongsTo(User::class);
}
public function user()
{
return $this->belongsTo('App\User', 'the_foreign_key_Post_in_users', 'primary_key_in_Post');
}
public function post(){
return $this->hasMany('App\Post','the_foreign_key_POst_in_users');
}
这样您就可以像
//Get User from Post
$user = Post::find($id)->user;
//Get Post collection from User
$posts = User::find($id)->posts
请检查您的结果和代码,如下所示:
Route::get('/{id}', function($id){
return Post::find($id)->user->name;
});
public function posts(){
return $this->hasMany(Post::class);
}
public function user(){
return $this->belongsTo(User::class);
}
public function user()
{
return $this->belongsTo('App\User', 'the_foreign_key_Post_in_users', 'primary_key_in_Post');
}
public function post(){
return $this->hasMany('App\Post','the_foreign_key_POst_in_users');
}
App\User.php
Route::get('/{id}', function($id){
return Post::find($id)->user->name;
});
public function posts(){
return $this->hasMany(Post::class);
}
public function user(){
return $this->belongsTo(User::class);
}
public function user()
{
return $this->belongsTo('App\User', 'the_foreign_key_Post_in_users', 'primary_key_in_Post');
}
public function post(){
return $this->hasMany('App\Post','the_foreign_key_POst_in_users');
}
Post::find($id)
或Post::find($id)->用户
不是object@Scuzzy我怎样才能使它成为一个对象呢?这取决于Post::find($id)
返回的是什么,它实际上是在查找什么,还是返回布尔值false等等?