在不应该php Laravel9的地方输入if语句



好了,下面是去掉不需要的信息的整个函数:

$signups = $query->get(); COMMENT Here is it getting data
if($signups):
dump($signups); COMMENT Line 124
$invoice = new AppModelsInvoice;
$invoice->created_by = Auth::id();
$invoice->recipient_id = $club->id;
$invoice->recipient_type = 'AppModelsClub';
$invoice->sender_id = $sender->id;
$invoice->sender_type = $type;
$invoice->sender_name = $sender->name;
$invoice_nr = AppModelsInvoice::GenerateInvoiceNumber($type, $sender->id);
dump($invoice_nr); COMMENT Line 133
$invoice->invoice_nr = $invoice_nr;
$invoice->invoice_reference = $sender->id.date('Y').$invoice_nr;
$invoice->save();
$sortorder = 0;
foreach($signups as $signup):
$sortorder++;
$invoice->expiration_date = (!$invoice->expiration_date || 
$invoice->expiration_date > $signup->Competition->signups_closing_date) ?  
$signup->Competition->signups_closing_date : $invoice->expiration_date;
$invoice->InvoiceRows()->create([
'description' => $signup->User->full_name.' '.$signup->Competition->name.' '
.$signup->Competition->date.' ('.(($signup->Competition->championships_id) ? 
$signup->Weaponclass->classname_general : $signup->Weaponclass->classname).')',
'quantity' => 1,
'unit' => _('st'),
'net_unit_amount' => $signup->registration_fee,
'vat_percent' => 0,
'vat_amount' => 0,
'row_net_amount' => 1 * $signup->registration_fee,
'row_vat_amount' => 0,
'row_sum_amount' => 1 * $signup->registration_fee,
'sortorder' => $sortorder
]);
$invoice->Signups()->save($signup);
endforeach;
$amount = $invoice->InvoiceRows()->sum('row_sum_amount');
$invoice->amount = $amount;
$invoice->expiration_date = (!$invoice->expiration_date || $invoice->expiration_date < date('Y-m-d')) ? date('Y-m-d') : $invoice->expiration_date;
dump($invoice_nr);COMMENT Line 163
$invoice->save();         //Här sparas fakturan med rätt nummer
$invoices->push($invoice);
endif;
if(!$teamIds[0] == '') {
dump($teamIds);COMMENT Line 169
$query = AppModelsTeam::with('Competition', 'Weapongroup');
$query->whereIn('teams.id', $teamIds);
$query->orderBy('competitions_id') ->  orderBy('name');
$query->where(function($query) use ($club, $sender, $type){
$query->whereNull('invoices_id');
$query->where('clubs_id', $club->id);
$query->whereHas('Competition', function($query) use ($sender, $type){
$query->where('invoices_recipient_type', $type);
$query->where('invoices_recipient_id', $sender->id);
});
});
$teams = $query->get();
} else {
$teams = null;
}
dump($teams);COMMENT Line 185

if($teams):
$invoice = new AppModelsInvoice;
$invoice->created_by = Auth::id();
$invoice->recipient_id = $club->id;
$invoice->recipient_type = 'AppModelsClub';
$invoice->recipient_name = $club->name;
$invoice->sender_id = $sender->id;
$invoice->sender_type = $type;
$invoice->sender_name = $sender->name;
$invoice_nr = AppModelsInvoice::GenerateInvoiceNumber($type, $sender->id);
$invoice->invoice_nr = $invoice_nr;
$invoice->invoice_reference = $sender->id.date('Y').$invoice_nr;
$invoice->save();
foreach($teams as $team):
$sortorder++;
$invoice->expiration_date = (!$invoice->expiration_date || 
$invoice->expiration_date > $team->Competition->signups_closing_date) ?  
$team->Competition->signups_closing_date : $invoice->expiration_date;
$invoice->InvoiceRows()->create([
'description' => _('Lag').': '.$team->name.' '.$team->Competition->name.' '
.$team->Competition->date.' ('.$team->Weapongroup->name.')',
'quantity' => 1,
'unit' => _('st'),
'net_unit_amount' => $team->registration_fee,
'row_sum_amount' => 1 * $team->registration_fee,
'sortorder' => $sortorder
]);
$invoice->Teams()->save($team);
endforeach;
$amount = $invoice->InvoiceRows()->sum('row_sum_amount');
$invoice->amount = $amount;
$invoice->expiration_date = (!$invoice->expiration_date || 
$invoice->expiration_date < date('Y-m-d')) ? date('Y-m-d') : 
$invoice->expiration_date;
dump($invoice_nr);COMMENT Line 223
$invoice->save();
$invoices->push($invoice);
endif;

这些是转储:

POST http://127.0.0.1:8000/api/v4.1.9/clubinvoices?signup_ids=&team_ids=55
--------------------------------------------------------------------------
------------ ---------------------------------------- 
date         Mon, 09 May 2022 20:15:46 +0200         
controller   "ClubInvoicesController"                
source       InvoiceRepository.php on line 124       
file         app/Repositories/InvoiceRepository.php  
------------ ---------------------------------------- 
IlluminateDatabaseEloquentCollection^ {#1567
#items: []
#escapeWhenCastingToString: false
}
------------ ---------------------------------------- 
date         Mon, 09 May 2022 20:15:46 +0200         
controller   "ClubInvoicesController"                
source       InvoiceRepository.php on line 133       
file         app/Repositories/InvoiceRepository.php  
------------ ---------------------------------------- 
1507
------------ ---------------------------------------- 
date         Mon, 09 May 2022 20:15:46 +0200         
controller   "ClubInvoicesController"                
source       InvoiceRepository.php on line 163       
file         app/Repositories/InvoiceRepository.php  
------------ ---------------------------------------- 
1507
------------ ---------------------------------------- 
date         Mon, 09 May 2022 20:15:46 +0200         
controller   "ClubInvoicesController"                
source       InvoiceRepository.php on line 169       
file         app/Repositories/InvoiceRepository.php  
------------ ---------------------------------------- 
array:1 [
0 => "55"
]
------------ ---------------------------------------- 
date         Mon, 09 May 2022 20:15:46 +0200         
controller   "ClubInvoicesController"                
source       InvoiceRepository.php on line 185       
file         app/Repositories/InvoiceRepository.php  
------------ ---------------------------------------- 
IlluminateDatabaseEloquentCollection^ {#1533
#items: array:1 [
0 => AppModelsTeam^ {#1564
COMMENT Here comes all the information about the team, cutted out.
------------ ---------------------------------------- 
date         Mon, 09 May 2022 20:15:46 +0200         
controller   "ClubInvoicesController"                
source       InvoiceRepository.php on line 223       
file         app/Repositories/InvoiceRepository.php  
------------ ---------------------------------------- 
1508

最后一个发票号码是团队的正确号码之前的发票号1507是错误的,因为它在不应该的地方输入了第一个if语句if ($signups):。因此,首先会创建一个额外的发票,但没有任何内容。

现在的注册工作没有额外的空发票,因为:$teamIds[0] == "){但这在注册中不可用。

所以问题是让if语句在应该输入和不应该输入的时候输入。我什么都试过了,但只成功了。$teamIds[0] == ") {

在控制器中是array-settings:

$signupIds = array();
$signupsSelected = ($request->exists('signup_ids'));
if ($request->has('signup_ids')) {
$signupIds = explode(',', $request->get('signup_ids'));
}
$teamIds = array();
$teamsSelected = ($request->exists('team_ids'));
if ($request->has('team_ids')) {
$teamIds = explode(',', $request->get('team_ids'));
}

我已经看到,如果我使用:if(!$signups->isEmpty()):,那么它不会被输入。但在$teams中,我得到的是未定义变量$sortorder。我知道我们正在处理

Laravel系统从可以运行此代码的Laravel 5.3升级到现在不能运行的Laravel9。

我已经解决了这个问题。第一个

if($signups):

需要改成

if(!$signups->isEmpty()):

因为它是PHP数组的集合版本

if($teamsId) {

必须是

if(!$teamIds[0] == '') {

但是我得到了一个错误未定义变量$sortorder因为在$teamIds中有一个$sortorder = 0;失踪。在Laravel 9中,这显然是必要的。

所以现在,我很高兴,我想感谢你们所有人的帮助和努力。

尝试空函数:if(!empty($teamIds)){

最新更新