【发布时间】:2019-12-18 01:41:51
【问题描述】:
我怎样才能只为我搜索过的帖子求和价格?我有一个搜索页面,搜索的是日期,所以我按日期搜索帖子。当我输入我想要的日期时,我需要总结我的搜索功能为该日期找到的所有帖子价格。这是我的代码。
这是我在web.php中的搜索:
Route::get('/search', 'PagesController@search');
Route::post('/search',function(){
$q = Input::get ( 'q' );
$post = auth()->user()->posts()->where('ime','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(){
$user_id = auth()->user()->id;
$user = User::find($user_id);
return view('search')->with('posts', $user->posts);
}
这是我的search.blade.php,带有表格页脚,应该是我的帖子价格的总和:
<tfoot>
<tr>
<th>UKUPAN IZNOS: {{ Auth::user()->posts()->sum('cijena') }}€</th>
</tr>
</tfoot>
但是当我输入这个时,它会将所有帖子的价格相加,而我只需要搜索过的帖子。有什么建议吗?
【问题讨论】:
-
您的代码中在哪里使用了
price? -
对不起,它的'cijena'没有定价
-
在您看来,您可以直接使用
$posts->sum('cijena'),因为您将'posts'变量传递给它。但是,这会对集合进行求和,但最好使用查询生成器,即posts()->sum('cijena')。
标签: php laravel laravel-5 eloquent laravel-5.8