因此,我在laravel项目中进行了此搜索,所有搜索均正常进行 很好,但是当我搜索它时,它会向我显示所有用户的所有帖子。我只需要搜索该用户创建的帖子。有什么想法吗?
这是我在web.php
的路线:
Route::get('/search', 'PagesController@search');
Route::post('/search',function(){
$q = Input::get ( 'q' );
$post = Post::where('ime','LIKE', '%'.$q.'%')->orWhere('datum_preuz','LIKE', '%'.$q.'%')->get();
if(count($post) > 0)
return view('search')->withDetails($post)->withQuery ( $q );
else return view ('search')->withMessage('Nema rezultata Vaše pretrage. Probajte ponovo!');
});
这是我的PagesController public function search()
:
public function search(){
$user_id = auth()->user()->id;
$user = User::find($user_id);
return view('search')->with('posts', $user->posts);
}
这是在我的search.blade.php
中:
<form action="{{url('/search')}}" method="POST" role="search">
{{ csrf_field() }}
<div class="input-group">
<input type="text" class="form-control" name="q" placeholder="Traži..." id="search">
<button type="submit" class="searchbutton"><i class="fa fa-search"></i></button>
</div>
</form>
</br></br>
@if(isset($details))
<p class="searchp">Rezultati vaše pretrage <b> {{$query}} </b>: </p>
</br>
<table>
<thead>
<tr>
<th>BR.KESICE</th>
<th>IME I PREZIME</th>
<th>BR.TELEFONA</th>
<th>POSAO</th>
<th>CIJENA</th>
<th>PLACANJE</th>
<th>POPUST</th>
<th>DATUM PREUZ.</th>
<th>DATUM IZDAV.</th>
<th>SMJENA</th>
<th>RADNIK</th>
<th>STATUS</th>
<th>IZMIJENI</th>
</tr>
</thead>
<tbody>
@foreach($details as $post)
<tr>
<td>{{$post->br_kesice}}</td>
<td>{{$post->ime}}</td>
<td>{{$post->br_telefona}}</td>
<td>{{$post->posao}}</td>
<td>{{$post->cijena}}</td>
<td>{{$post->placanje}}</td>
<td>{{$post->popust}}</td>
<td>{{$post->datum_preuz}}</td>
@if($post->status == 1)
<td>/</td>
@else
<td>{{$post->datum_izdav}}</td>
@endif
<td>{{$post->smjena}}</td>
<td>{{$post->radnik}}</td>
<td>
@if($post->status == 3)
<span class="label label-primary" id="statusdeaktivan">Deaktivan</span>
@elseif($post->status == 1)
<span class="label label-success" id="statusaktivan">Aktivan</span>
@endif
</td>
@if($post->status == 3)
@else
<td><a href="posts/{{$post->id}}/edit" class="edit"><i class="far fa-edit"></i></a></td>
@endif
</tr>
@endforeach
</tbody>
@elseif(isset($message))
<p class="searchp"> {{$message}} </p>
</table>
@endif
已编辑 这是我与用户模型的关系:
public function posts(){
return $this->hasMany('App\Post');
}
这是我与Post模型的关系:
public function user(){
return $this->belongsTo('App\User');
}
答案 0 :(得分:0)
您可以尝试使用在posts()
模型上已经拥有的User
关系,即:
$post = auth()->user()->posts()->where('ime','LIKE', '%'.$q.'%')->orWhere('datum_preuz','LIKE', '%'.$q.'%')->get();