php - 我该如何回应这个?

标签 php laravel object

当我回应这个时:

<?php echo $photo->votesCount ?>

我明白了

[{"photo_id":1,"votes":2}]

如何显示投票 (2)?

这是对象的 vardump:http://pastebin.com/ddAkRk4c

如果我输入:

<?php print_r( $photo->votesCount )?>

我明白了:http://pastebin.com/ZfE76WmB

完整 View :

2   @foreach($photos as $photo)                                                        
3   <li class='photo'>
4     <img src="{{URL::to('/')}}/uploads/{{$photo->name}}" width="150">                
5     <div>
6       <a href="{{route('photos.show',$photo->id)}}">{{ $photo->name }}</a>
7       <?php $photo_array = json_decode($photo);
8       echo $photo_array->votes; ?>
9     </div>
10   </li>
11   @endforeach

部分 Controller 逻辑:

 $photos = Photo::where('period_id', $currentPeriod)
                   ->with('votesCount')
                   ->get();
 return view('home', ['uploaded' => $uploaded, 'photos' => $photos, 'period' => $currentPeriod]);

型号:

  public function votes()
  {
      return $this->hasMany('App\Vote');
  }

  public function votesCount()
  {           
    return $this->votes()
      ->selectRaw('photo_id, count(*) as votes')
      ->groupBy('photo_id');
  }

最佳答案

不需要第二种方法votesCount。您已经为投票定义了一个 hasMany 关系,如果您查询它们,您只会获得照片 ID 的投票。

要获取票数,请在您的 View 中执行以下操作:

$photo->votes->count();

你的 Controller 应该是这样的:

$photos = Photo::where('period_id', $currentPeriod)
                   ->with('votes')
                   ->get();

关于php - 我该如何回应这个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33366067/

相关文章:

php - Mysql 比较月份和年份

php - 根据类别循环结果,但仅显示类别一次

php - 关系方法必须从 Laravel 4 中不查看的模型调用返回类型为 Illuminate\Database\Eloquent\Relations\Relation 的对象

php - Laravel 5.1 查询生成器,带有 'in' 子句和多个嵌套 OR 查询

javascript - JavaScript 中对象内对象或对象等于对象是否相同?

php - 显示帖子某些订单

laravel - 如何在 Laravel 中控制对另一台服务器上的文件的访问

javascript - 基于数组过滤对象

ios - 测试对象是否在对象数组中

php - 为什么 CURL 在我设置了 3000 毫秒超时后会在 1000 毫秒内超时?