php - Laravel - 将价格与支付方法的 where 方法相加
问题描述
所以现在我正在研究需要对每种付款方式进行价格求和的项目,例如,如果有人用现金支付,则需要对每笔现金支付的总价格求和。这是我的代码
这是我的home.blade.php
:
@extends('layouts.theme')
@section('content')
<style>
body{
margin: 0;
background-color: #EBEBEB;
}
</style>
<div class="mainl">
<div class="row">
<div class="columna">
<h1>{{ Auth::user()->name }}</h1>
<hr>
</div>
<div class="columns">
<a href="{{ route('logout') }}" id="logout"
onclick="event.preventDefault();
document.getElementById('logout-form').submit();">
{{ __('LOGOUT') }}
</a>
<form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
@csrf
</form>
</div>
</div>
</br></br></br>
@if(count($posts)> 0)
<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($posts 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 == 0)
<span class="label label-primary" id="statusdeaktivan">Deaktivan</span>
@elseif($post->status == 1)
<span class="label label-success" id="statusaktivan">Aktivan</span>
@elseif($post->status == 2)
<span class="label label-danger" id="statusdeaktivan">Rejected</span>
@else
<span class="label label-info" id="statusdeaktivan">Deaktivan</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>
<tfoot>
<tr>
<th>UKUPAN IZNOS: {{ Auth::user()->posts->sum('cijena') }}€</th>
<th>KARTICA: {{ Auth::user()->posts->where('placanje', 'Kartica')->where('created_at','=',$date)->sum('cijena')}}€</th>
</tr>
</tfoot>
</table>
<br><br>
{{ $posts->links() }}
@else
<p>Trenutno nema unosa.</p>
@endif
</div>
@endsection
在此home.blade.php
我where('created_at','=',$date)
从我的 HomeController 中输入,但它不起作用。在我的主页上,它只显示今天发布的帖子。这就是我在我的
HomeController.php
:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
use App\Post;
use DB;
use Auth;
use Carbon\Carbon;
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index()
{
$date = new Carbon(request('date'));
$posts = Post::where('user_id', Auth::id())
->whereDate('created_at','=',$date)
->orderBy('created_at', 'DESC')
->paginate(30); //add {{ $posts->links() }} if paginate is enabled
return view('home', compact('date', $date))->with('posts', $posts);
}
}
所以我所需要的只是当经理创建帖子并输入付款方式例如“Kartica”时,在我的主页中它的表格页脚它需要汇总今天发布的所有帖子的总付款以及“Kartica”付款方式的所有价格也从今天开始. 如果有人有想法请告诉我,谢谢!
解决方案
created_at
字段使用YYYY-MM-DD HH:II:SS
格式,因此您必须按日期而不是按日期时间过滤。
你可以这样做:
public function index()
{
$date = new Carbon(request($date))->format("Y-m-d");
...
->whereRaw('DATE(created_at) = ?', $date)
...
}
whereRaw
方法可用于将原始 where 子句注入查询。
推荐阅读
- ios - 检查下拉列表的文本是否有效以打开下一个选择器 usnig Swift
- sql - SQL 计数和连接
- ios - 添加 tabBarController、iOS、Swift 后导航消失
- javafx - 如何将侦听器附加到两个仅在两者都更改时触发一次的属性?
- c# - 使用 XSD.exe 的多个版本 C# 类/XSD
- python - 如何将子菜单项添加到 wxPython 中的弹出菜单项?
- amazon-web-services - 如何限制 AWS 自动缩放以不允许使用特定角色?
- laravel - (VueJS, Axios) 捕获错误的不同方法
- java - 单调法
- javascript - 文件系统访问 API createWritable() 方法在控制台中有效,但在脚本中无效