2016-09-23 3 views
1

app \ Helpers \ Enums \ DriverType.php에서 가치를 얻으 려했습니다. 내 드라이버 \의 create.blade에 배열에서 값을 얻을 수있는 방법Laravel 5.3 배열 값 가져 오기

<?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"; 
    } 
} 

} 

?> 

내 질문은 :

여기 내 코드입니다. 나는 시도했다. 이것이 어떻게 작동하는지 알아 내기 위해 필요한

{!! 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> 

코드 :

여기 내 블레이드 코드입니까?

+0

으로 바꿀 수 있습니까? 프로젝트에서 항상 메소드를 정적으로 호출 할 수 있습니다. – anwerj

+0

@anwerjunaid ok. –

+0

@anwerjunaid 코드가 있습니다. –

답변

0

파일을보기 위해 변수를 공유하는 옵션은 여러 가지가 있습니다.

첫 번째 : 컨트롤러에서
당신이 파일이 바로 전화 직접

같은 클래스

{!! Form::select('gender', $genders, null, array('class' => 'form-control')) !!} 

둘째 $ 성별을 사용하여 블레이드에서는 변수

$genders = App\Helpers\Enums\Gender::getArray(); 
return view('view_name', compact($genders)); 

를 전달할 수 있습니다

{!! Form::select('gender',App\Helpers\Enums\Gender::getArray(); , null, array('class' => 'form-control')) !!} 

세 번째이며 아마도 가장 유용 할 것입니다.
나중에 필요할 수 있으므로 모든 뷰와 성별을 공유 할 수 있습니다.

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 변수를 사용하면 공급자 파일에서 (AppServiceProvider 권장) 추가이 줄

은 모든 뷰에서 사용할 수 있습니다.

넷째보기 작곡가 Laravel은 당신이 할 수있는, 당신은 당신이 0 또는 옵션은 1로 선택 값을 얻을 것이다 결국 그것에 대해 Here

을 읽을 수있는, 내가 그것을 사용하지 않은,이 절차를 권장합니다 열거 형 값을

$gender = Input::get('gender'); 
$genderEnum = App\Helpers\Enums\Gender::getArray()[$gender]; 
// or write another method for. 
+0

너무 많은 anwer 감사하지만 왜 $ 성별을 사용하지, 그것은 undi 변수라고 말했다. 호출 클래스를 직접 사용하여 작동합니다. –

+0

이들은 함수 기반의 파일 포함으로,이 방법으로 설계되었습니다. 뷰에서 변수에 액세스 할 수 있도록 변수를 선언해야합니다. – anwerj

+0

, 감사합니다 친구. –