Laravel:foreach语句中的重复条目

时间:2016-09-29 11:27:43

标签: php mysql laravel

我有一个列表功能,允许用户将特定文章添加到个性化列表中。如果我在同一个列表中添加多个文章。列表在下拉菜单中重复。

示例:

enter image description here

  

我添加到特定列表的文章越多。所以它重复了。

数据库表

list          | id | person_id  | name      | description
              | 1    15         | Test List | null

data_list_ref | id | list_id   | data_uid
              | 1  | 1         | 9b888e1e9e
              | 2  | 1         | jZ-mAtgh

查询

$lists = DB::table('list')
  ->leftJoin('data_ref_list', 'data_ref_list.list_id', '=', 'list.id')
  ->select('list.id', 'list.name', 'data_ref_list.data_uid')
  ->where('person_id', Auth::user()->person_id)
  ->get();

刀片实施

  

$ record-> key是当前的文章'正在浏览器中查看

@foreach($lists as $list)
  @if($list->data_uid === $record->key)  
     // show the checked list 
     // user's cant add the same article twice to a specific list
  @else
     // show the user's other lists
  @endif
@endforeach

1 个答案:

答案 0 :(得分:-1)

尝试使用Eloquent:Relationships。

创建2个模型https://laravel.com/docs/5.3/eloquent#defining-models 一个用于"列表"和一个用于data_list_ref。

在模型"列表"与" data_list_ref"建立关系https://laravel.com/docs/5.3/eloquent-relationships#defining-relationships

像你这样在你的控制器中包含模型

use App\List;

现在,如果您想从" List"获取数据以及来自" data_list_ref"你这么称呼它

$list = List::where('person_id', Auth::user()->person_id)->get();

这是laravel获取数据的方式。