如何在 blade 中获得 属性 关系

How to get property on relation in blade

当我尝试访问视图内 hasOne 关系中的 属性 时,我的视图中出现以下错误,我是否不允许从视图中执行此操作,基本上是我想要实现的是对我可以与列表模型相关的属性进行动态 select。

Undefined property: Illuminate\Database\Eloquent\Relations\HasOne::$name (View: C:\wamp64\www\grupoeverest\resources\views\admin\listing\property.blade.php)

属性输入型号

class PropertyType extends Model
{
    protected $table = "property_types";
    protected $fillable= ['name'];
    public function property()
    {
        return $this->belongsTo('App\Property');
    }
}

属性 型号

class Property extends Model
{
    protected $table="properties";
    protected $fillable=['value'];

    public function propertyType(){
        return $this->hasOne('App\PropertyType');
   }
    public function listing(){
        return $this->belongsTo('App\Listing');
   }
 }

上市模式

class Listing extends Model
{

    protected $table="listings";
    protected $fillable=['name','price','squaremeters','number',
        'street','neighbourhood','description','description',
        'zipcode','longitude','latitude', 
        'listing_type_id','operation_type_id' ];
    public function listingType(){
        return $this->hasOne('App\ListingType', 'id');
    }
    public function pictures(){
        return $this->hasMany('App\Picture', 'listing_id');
    }
    public function properties(){
        return $this->hasMany('App\Property', 'listing_id');
    }

 }

控制器动作

    public function properties($id)
    {

        return view('admin.listing.property',[
            'listing' => Listing::find($id),
            'types' => ListingType::all(),
        ]);
    }

查看

  <div class="row">
  <div class="col-md-6">
  <h4>here
  </h4>

  @foreach($listing->properties as $property)
  <h4> {{$property->value}}{{$property->propertyType()->name}}
  </h4>

  @endforeach
  </div>

应该是$property->propertyType->name

我的问题已通过将 属性Type 方法 属性 更改为 hasMany 和 属性 方法 属性Type 更改为 belongsTo 并在我看来使用 Abdullah 提供的答案来解决,这确实更有意义。

例如

protected $table = 'states';

public function City() {    
    return $this->hasMany(City::class);
}

}

public function Farm() {
    return $this->belongsTo('App\Models\Farm','farm_id','id');
}

更多信息访问 https://laravel.com/docs/5.2/eloquent-relationships