[英]Laravel 5.3 Get Array Value
我堅持從app \\ Helpers \\ Enums \\ DriverType.php獲取價值。
這是我的代碼:
<?php
namespace App\Helpers\Enums;
final class Gender {
const MALE = 0;
const FEMALE = 1;
public static function getList() {
return [
Gender::MALE,
Gender::FEMALE,
];
}
public static function getArray() {
$result = [];
foreach (self::getList() as $arr) {
$result[$arr] = self::getString($arr);
}
return $result;
}
public static function getString($val) {
switch ($val) {
case 0:
return "Male";
case 1:
return "Female";
}
}
}
?>
我的問題是如何從我的driver \\ create.blade中獲取數組中的值。 我努力了。
這是我的刀片代碼:
{!! Form::model($obj,
[ 'url' => $route,
'method' => $method,
'id' => 'driverCreate',
]) !!}
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Gender:</strong>
{!! Form::select('gender', array('Male', 'Female'), null, array('class' => 'form-control')) !!}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 text-center">
<button type="submit" class="btn btn-primary" >Submit</button>
{!! Form::close() !!}
</div>
任何代碼需要弄清楚這是如何工作的?
共享變量以查看文件有多種選擇。
第一:
從Controller你可以傳遞變量
$genders = App\Helpers\Enums\Gender::getArray();
return view('view_name', compact($genders));
在你的刀片文件中只需使用$性別
{!! Form::select('gender', $genders, null, array('class' => 'form-control')) !!}
第二次直接打電話給班級
{!! Form::select('gender',App\Helpers\Enums\Gender::getArray(); , null, array('class' => 'form-control')) !!}
第三,可能最有用
您可以與以后可能需要的所有視圖共享性別。 在您的提供程序文件(建議使用AppServiceProvider)中添加這些行
namespace App\Providers;
use Illuminate\Support\Facades\View;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
$genders = App\Helpers\Enums\Gender::getArray();
View::share('genders', $genders);
}
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
//
}
}
$gender
變量將在您的所有視圖中提供。
Fourth View Composer Laravel推薦這個程序,我還沒有用過它,你可以在這里閱讀它
最后,您將獲得選擇值0或1作為您的選項,您可以獲得枚舉值
$gender = Input::get('gender');
$genderEnum = App\Helpers\Enums\Gender::getArray()[$gender];
// or write another method for.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.