数据无法显示,数据库关系一对一Laravel



ErrorException
尝试获取非对象的属性"category_name"(视图:D:\examplep\htdocs\e-catalog\resources\views\backend\pages\gmproducts.blade.php(

这是我下面的刀片代码。

<tbody>
@foreach($gmproducts as $no => $gm)
<tr>
<td>{{$no+1}}</td>
<td>{{$gm->type}}</td>
<td>{{$gm->gmcategories->category_name}}</td>
<td>{{$gm->gram}}</td>
<td>{{$gm->carat}}</td>
<td>@currency($gm->price)</td>
<td><a class="test-popup-link" href="{{url('p_goldmart/'.$gm->file)}}">Preview</a></td>
<td>
<a href="/gmproducts/update/{{$gm->id}}" class="text-primary"><i class="fa fa-edit"></i></a>
<a href="/gmproducts/delete/{{$gm->id}}" class="text-danger"><i class="fa fa-trash-o"></i></a>
</td>
</tr>
@endforeach
</tbody>

这是我的模型Gmcacategories&Gmproducts。

<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class Gmcategories extends Model
{
protected $table = "gmcategories";
protected $fillable = ['category_name'];
public function gmproducts()
{
return $this->hasOne('AppGmproducts');
}
}

<?php
namespace App;
use IlluminateDatabaseEloquentModel;
use IlluminateDatabaseEloquentSoftDeletes;
class Gmproducts extends Model
{
use SoftDeletes;
protected $table = "gmproducts";
protected $fillable = ['type', 'category_id', 'gram', 'carat', 'price', 'file'];
protected $dates = ['deleted_at'];
public function gmcategories()
{
return $this->belongsTo('AppGmcategories');
}
}

这是我的控制器。

<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppGmproducts;
use AppGmcategories;
use File;
class GmproductsController extends Controller
{
public function index()
{
$gmproducts   = Gmproducts::orderBy('id', 'desc')->get();
$trash      = Gmproducts::orderBy('deleted_at', 'desc')->onlyTrashed()->count();
return view('backend.pages.gmproducts', compact('gmproducts', 'trash'));
}
public function create()
{
$gmcategories   = Gmcategories::all();
return view('backend.pages.create', compact('gmcategories'));
}

只是信息,我只是重命名我的模型和控制器。它有效果吗?谢谢

// Gmcategories model
public function gmproducts()
{
return $this->hasOne('AppGmproducts', 'category_id');
}
// Gmproducts model
public function gmcategories()
{
return $this->belongsTo('AppGmcategories', 'category_id');
}

您的BuildImage模型应该是

获取建筑图像的源类型。

public function type() {
return $this->hasOne('AppBuildingType',"id","source"); 
}

并且构建类型模型应该是

获取拥有该建筑类型的建筑图像。

public function buildingImage()
{
return $this->belongsTo('AppBuildingImage',"source","id");
}

最新更新