【发布时间】:2017-10-13 09:57:29
【问题描述】:
所以我要做的是制作一份试算平衡报告。我必须在两个日期之间获取所有科目表(coas)及其借方总和和贷方总和。我在数据库中有这些表,这些是它们的属性
- 客户:ID、姓名
- Coas:身份证、姓名
- 期刊:id、描述、日期
- Journal_details:id、journal_id、coa_id、借方、贷方
我已经把他们的关系放到了模型中。
Client.php
public function coas()
{
return $this->belongsToMany('App\Coa');
}
public function journal(){
return $this->hasMany('App\Journal');
}
Coa.php
public function clients(){
return $this->belongsToMany('App\Client');
}
public function journals_details(){
return $this->hasMany('App\JournalDetails');
}
Journal.php
public function journal_details(){
return $this->hasMany('App\JournalDetails');
}
public function client(){
return $this->belongsTo('App\Client');
}
JournalDetails.php
public function journal(){
return $this->belongsTo('App\Journal');
}
public function coa()
{
return $this->belongsTo('App\Coa');
}
我正在尝试获取包含特定客户日记详细信息的所有 coas,我已经在这样做了。 $trials = $client->coas()->with('journals_details')->get();
但是,我使用日期范围仅选择属于输入的特定日期的那些。这是我的控制器。我试过了,但它不起作用。
public function trial_balance_generate(Request $request)
{
$client = Client::find($request->client_id);
$start = \Carbon\Carbon::parse($request->from)->startOfDay();
$end = \Carbon\Carbon::parse($request->to)->endOfDay();
$data= $client->coas()->with('journals_details')->whereBetween('date',[$start,$end])->get();
return response()->json($data);
}
我知道我获取数据的方式有问题。我只是不知道如何使用包含日期的期刊标题获取所有 coas 及其详细信息。
这是我获取日期范围的 javascript。
$('.date').on('change', function() {
var from = $('#from').val();
var to = $('#to').val();
var client_id = $('.clientHidden').val();
$.ajax({
type : 'get',
url : '/user/'+client_id+'/reports/trialbalance/generate/',
dataType: 'json',
data : {
'from':from,
'to':to,
client_id':client_id
},
success:function(data){
$('td').remove();
for(var ctr = 0; ctr < data.length; ctr++)
{
$('#reportTbody').append()
'<tr><td>'+ data[ctr].name +'</td><td>{{$trial->journals_details->sum("debit")}}</td><td>{{$trial->journals_details->sum("credit")}}</td></tr>'+
}
}
});
});
这是我正在努力实现的目标https://imgur.com/a/IZvio 的照片,它返回了所有内容,所以还没有日期。
【问题讨论】:
-
您不需要
coas表中的client_id列以使Coa->belongsToMany工作吗? -
还有一个名为 'client_coa' 的表,其中包含 client_id 和 coa_id。
标签: javascript laravel laravel-5.2 date-range accounting