【发布时间】:2019-10-23 17:33:39
【问题描述】:
我有一个搜索功能,我需要添加id 的帖子(来自表opinions,列id)。在我看来,我已经拥有subject,并且我使用$user->subject 从数据库中获取它,但是在$user->id,我得到的是用户的ID,而不是帖子的ID。所以,我需要正确地获取数据。我需要根据主题获取帖子的 ID。
现在,我创建了一个返回类似内容的新变量:
$user = Opinion::where ( 'subject', 'LIKE', '%' . $q . '%' )
->join('role_users' , 'role_users.user_id', '=', 'opinions.user_id')
->join('roles' , 'roles.id', '=', 'role_users.role_id')
->join('users', 'users.id', '=', 'opinions.user_id')
->orWhere ( 'opinions.user_id', 'LIKE', '%' . $q . '%' )
->orWhere ( 'opinions.id', '=', 'opinions.subject')
->orWhere('opinions.category_id' ,'=', $category->id)
->orWhere ( 'opinions.user_id', '=', 'users.username')
->get ();
$topic_id = Opinion::select('id', 'subject')
->get();
Collection {#883 ▼
#items: array:20 [▼
0 => Opinion {#873 ▶}
1 => Opinion {#851 ▼
#table: "opinions"
+timestamps: false
#fillable: array:10 [▶]
#connection: null
#primaryKey: "id"
#keyType: "int"
#perPage: 15
+incrementing: true
#attributes: array:2 [▼
"id" => "2"
"subject" => "4 Ways We Can Avoid Workplace Burnout"
]
这是我的看法:
<?php $count_event = 1; ?>
@foreach($details as $user)
@if($count_event == 1)
<div class="row news-v2 margin-bottom-50 ">
<div class="col-sm-6 sm-margin-bottom-30">
<div class="news-v2-badge">
<div class="easy-block-v1">
<div class="easy-block-v1-badge rgba-{{ $category->color }} noticeboard-topic-category">
<i class="icon-{{ $typee }}"></i> / {{ $type }}
</div>
<?php
$video_content = preg_replace("/<img[^>]+\>/i", "", $user->information);
preg_match('/src="([^"]+)"/', $video_content, $video);
?>
<?php
$match = '';
$str = $user->information;
$start = "<iframe src='";
$end = "' width='100%' height='281'></iframe>";
$pattern = sprintf(
'/%s(.+?)%s/ims',
preg_quote($start, '/'), preg_quote($end, '/')
);
if (preg_match($pattern, $str, $matches)) {
list(, $match) = $matches;
}
?>
@if(isset($match) && $match != '')
<iframe src="{{ $match }}" width='100%' height='258'></iframe>
@elseif(isset($video[1]))
<iframe src="{{ $video[1] }}" width='100%' height='258'></iframe>
@else
<?php preg_match('/<img.+src=[\'"](?P<src>.+?)[\'"].*>/i', $user->information, $image); ?>
@if(isset($image['src']))
<?php $img = str_replace('&', '&', $image['src']); ?>
<img class="img-responsive category-image" src="{{ url('ass/409/258?'.$img) }}" alt="">
@else
<?php $img = "thumbnail/".$user->profile_picture; ?>
@if(@getimagesize($img))
<img class="img-responsive category-image" src="{{ url('ass/409/258?'.$img) }}" alt='' />
@else
<?php $img = "assets/img/main/img12.jpg"; ?>
<img class="img-responsive category-image" src="{{ url('ass/409/258?'.$img) }}" alt="">
@endif
@endif
@endif
<!--
<div class="card" style="width:300px">
<div class="card-body">
<?php $img = "thumbnail/".$user->profile_picture; ?>
@if(@getimagesize($img))
<img style="position: relative;top: 9px;" class="img-circle noticeboard-profile-picture-neo col-md-2" src="{{ url('ass/50/50?'.$img) }}" alt="">
@endif
<h4 class="noticeboard-title">
<a href="{{ url( $test ) }}/{{ $user->id }}_{{ Slugify::slugify( $user->subject ) }}" class="noticeboard-subject">{{ $user->subject }} </a>
</h4>
<p class="card-text">
<a href="{{ url( $test ) }}/{{ $user->id }}_{{ Slugify::slugify( $user->subject ) }}" class="btn btn-primary">Read more</a>
</div>
</div>
</div> -->
</div>
</div>
<div class="news-v2-desc" style="background-color: #f7f8fa">
<div class="row">
<div class="col-md-2">
<?php $img = "thumbnail/".$user->profile_picture; ?>
@if(@getimagesize($img))
<img style="position: relative;top: 9px;" class="img-circle noticeboard-profile-picture-neo col-md-2" src="{{ url('ass/50/50?'.$img) }}" alt="">
@endif
</div>
<div class="col-md-10 noticeboard-subjecttitle">
<h4 class="noticeboard-title" style="text-align: justify;position: relative;right: -15px;">
@foreach($topic_id as $opinion)
{{$opinion->id}}
<a href="{{ url( $test ) }}/{{ $user->id }}_{{ Slugify::slugify( $user->subject ) }}" class="noticeboard-subject">{{ $user->subject }} </a>
@endforeach
</h4>
<ul style="position: relative;right: -15px" class="list-unstyled list-inline blog-info noticeboard-ul-link">
<li>
@if($user->role_id == 1)
<i class="icon-user"></i>
<a href="{{ url('')}}/{{$user->username}}">{{$user->username}}</a>
@else
<i class="icon-hotel-restaurant-172 u-line-icon-pro fa- fa-lg"></i>
@endif
</li>
<li>
<i style="font-size: 11px" class="icon-{{$typee}}"></i>
<a href="{{ url('') }}/{{$link}}">{{ $type }}</a>
</li>
</ul>
</div>
</div>
<?php
$information = preg_replace("/<img[^>]+\>/i", "", $user->information);
$Output = preg_replace('/<iframe.*?\/iframe>/i','', $information);
?>
<p>{{ str_limit(trim(strip_tags(preg_replace(array('/\s{2,}/', '/[\t\n]/'), ' ', $Output))), 200) }}</p>
<p><a style="border-radius: 0rem !important;border: 0.1rem solid #18ba9b" class="btn-z btn-xs g-mr-10 g-mb-15" href="{{ url( $test ) }}/{{ $user->id }}_{{ Slugify::slugify( $user->subject ) }}">Read more <i class="fa fa-angle-double-right margin-left-5"></i></a></p>
</div>
</div>
@endif
@endforeach
我从意见中得到每一篇文章。但是现在,如果我将它与@foreach 一起使用,我会从我的页面上获得所有记录(id + 主题),关于每个主题:https://imgur.com/a/ROuxpwC。
那么,如何正确分配每个主题的id?
【问题讨论】:
-
您已经使用 '$opinion->id' 获得意见表 id 列,不确定您到底需要什么...
-
使用
{{$opinion->id}}我得到了未定义的变量。也许问题就在这里?->join('users', 'users.id', '=', 'opinions.user_id')因为,从我添加这个开始,帖子中的id变成了用户的id。 -
能否请您显示使用
dd( $user );的输出 -
当然,通过 Bassem Samir 的查询,我得到了正确的帖子 ID,但现在我需要根据表
opinions中的user_id从表users中获取usernameid 和 subject 也在哪里)。这是dd($user):imgur.com/a/QxOyJEz