У меня есть функция, которая получает значение из базы данных и возвращает. Когда я повторяю, значение существует. Но возвращаемое значение равно нулю;
public static function getCountryCode($country) {
$country = (int) $country;
$x = Country::where('id', $country)->get();
$country_code = '';
foreach($x as $row)
$country_code = $row->alpha_2;
//return 'bd';
echo $country_code;
return $country_code;
}
Не уверен, что там не так. Это проект Laravel.
Функция, которая вызывает этот метод
public function countryselect()
{
$country_id = HomeController::detectCountry();
$country_code = SiteController::getCountryCode($country_id);
var_dump($country_code);
return View::make('Layout.countryselect', compact('country_id', 'country_code'));
}
Вам не нужно использовать функцию «foreach». Вы можете получить код страны гораздо проще. Просто внесите некоторые изменения в getCountryCode (), например
public static function getCountryCode($countryId) {
$countryId = (int) $countryId;
$country = Country::where('id', $countryId)->get()->first();
return $country->code;
}
Это вернет код страны указанного идентификатора страны. Используйте описательное имя для переменной, как вы использовали для функции
Других решений пока нет …