通过外键搜索查询

时间:2018-06-19 19:42:30

标签: laravel laravel-5 laravel-5.4

我正在尝试搜索有关连接到user_id外键的用户名的评论

表格: 评论-ID,评论,用户ID,时间戳 用户-ID,名称,用户名

型号:

class Comment extends Model
{

    public function author()
    {
        return $this->belongsTo('App\User','user_id');
    }
}

控制器:

public function index(Request $request)
{
     $comments = Comment::query()->orderby('created_at', 'DESC');

    $id=$request->]


    return view('comments.index')->withComment($comment);
}

查看:

            <div class="panel-body">
                {!! Form::open(['route' => 'comments.index', 'method' => 'GET']) !!}
                <div class="col-md-5">
                    {!! Form::label('id', 'Search By ID:') !!}
                    {!! Form::text('id', null, array('class' => 'form-control')) !!}
                </div>
                <div class="col-md-5">
                    {!! Form::label('username', 'Search By Username:') !!}
                    {!! Form::text('username', null, array('class' => 'form-control')) !!}
                </div>
                <div class="col-md-2">
                    {!! Form::submit('Find Comments', array('class' => 'btn btn-send ')) !!}
                </div>
                {!!Form::close()!!}

            </div>
@foreach($comment as $comments)
//data
@endforeach

1 个答案:

答案 0 :(得分:0)

我认为它在构建器级别上失败了,因为您正在尝试查询一个未知的对象。 IE作者LIKE必须是子查询的一部分:

$comments = Comment::whereHas('author', function ($query) use($request) {
    $query->where(users.username, 'LIKE', $request->input('username') )
}])->orderby('created_at', 'DESC')->get();

我看到您将不得不再次编写查询,但是我认为这对您来说可能是成功的。