我試圖通過檢查值是否在陣列中來驗證值,這是我目前所擁有的:
$agency_names = Session::get('config.agency-names');
$request->validate([
'agency-name' => 'required|array:' . $agency_names . ''
]);
$agency_names(輸出):
0:
AgencyID: "A1169"
AgencyName: "19 London"
AgencyType: "Agency Plus"
1:
AgencyID: "A1095"
AgencyName: "Abbeville Nannies"
AgencyType: "Affiliate"
任何幫助,將不勝感激。
更新代碼:
$agencies = Session::get('config.agency-names');
$names = array_map(fn($agency_data): string => $agency_data->AgencyName, $agencies);
$request->validate(['agency-name' => 'required', Rule::in($names)]);
更新代碼(已解決)
$agencies = Session::get('config.agency-names');
$agency_names = array();
for ($x = 0; $x < count($agencies['Agencies']); $x ) {
$name = $agencies['Agencies'][$x]["AgencyName"];
array_push($agency_names, $name);
}
$request->validate(['agency-name' => ['required_if:referral,no', Rule::in($agency_names)]]);
uj5u.com熱心網友回復:
查看有關Laravel 驗證規則的檔案,特別是in規則。
假設$agency_names是一個陣列,你可以這樣做:
use Illuminate\Validation\Rule;
...
$request->validate([
'agency-name' => [
'required',
Rule::in($agency_names),
]);
附注。查看$agency_names陣列的結構,您應該首先使用$names = array_map(fn($agency_data): string => $agency_data->AgencyName, $agency_names);. 我還建議重命名$agency_names為$agencies,因為變數名稱具有誤導性。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/359053.html
