【问题标题】:How to get data based on user_id or subject如何根据 user_id 或主题获取数据
【发布时间】:2019-10-23 06:45:09
【问题描述】:

我有一个搜索功能,我需要添加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('&amp;', '&', $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

https://imgur.com/a/ydgDcLl

【问题讨论】:

  • 张贴表格
  • 请立即查看。

标签: php database laravel


【解决方案1】:

对于您的意见 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')
                         ->select('opinions.id as option_id', 'opinions.user_id as user_id ')
                        ->get();

【讨论】:

  • 谢谢,但我得到的结果和那张照片一样。
  • 请看这里:imgur.com/a/uZOiUtI。对于这个用户,$topic_id 返回我从 1 到 24 的 id。我正在使用 `@foreach($topic_id as $opinion) {{$opinion->id}} @endforeach. Should I use $user` 代替?跨度>
猜你喜欢
  • 2022-01-08
  • 2015-07-03
  • 1970-01-01
  • 2020-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
相关资源
最近更新 更多