count():参数必须为数组错误|尝试只使用count

问题描述 投票:0回答:1

我正在尝试仅从某个特定外部ID的关系数据库中返回数据。为此,我要使用with()访问模型,并从关系函数中获取数据。在这种情况下,为'modules()'。

学位模型:

class Degree extends Model

{

protected $guarded = [];

public function user()
{

  return $this->belongsTo('App\User');

}

public function modules()
{

  return $this->hasMany('App\Module');

}

模块型号:

class Module extends Model
{

protected $guarded = []

public function degree()
{

  return $this->belongsTo('App\Degree');

}

控制器:

public function show($id)
{
  $degree = Degree::find($id);
  $modules = Degree::with('modules')->find($id)->Module;

  return view('/degrees/show')->with('Degree', $degree)->with('Module', $modules);

}

因此,我期望发生的是$ modules对象在模型中搜索'modules()',并找到具有与学位匹配的foreignID的条目(在本例中为1)。然后,在我看来:

@if(count( $Module ) > 0)
                        @foreach($Module as $module)
                            <div class="well">
                                <h3><a href="#"> {{ $module->title }} </a></h3>
                                <p>{{ $module->description }}</p>
                                <small>Added {{ $module->created_at }}</small>
                            </div>
                        @endforeach
                    @else
                        <p>No Modules Added Yet</p>
                    @endif

通过对象$ Module推送的数据被计算并显​​示。

不幸的是,我收到此错误:

count():参数必须是实现Countable的数组或对象

任何想法都将有所帮助,即使这意味着采取完全不同的方法。

laravel view model controller
1个回答
0
投票

您需要以这种方式使用count()

@if($Module->count() > 0)
© www.soinside.com 2019 - 2024. All rights reserved.