2017-02-22 1 views
0

데이터베이스에서 데이터를 가져 오는 쿼리가 내 모델에 있고 데이터베이스 테이블에 nullable 필드가 있습니다. 내보기에서 모든 레코드를 표시하려고하면 NULL 값의 필드는 "NULL"로 표시됩니다. 이 값을 빈 문자열로 표시하고 싶습니다.Laravel Ellquent nullable 필드 값을 "NULL"문자열로 변환했습니다.

foreach($array as $key => $value) 
{ 
    if($array[$key] == NULL) 
    { 
     $array[$key] = ""; 
    } 
} 
: 내가하고 싶었던

public function loadSpecificPerson($id) 
{ 
     $persons = DB::select("SELECT * FROM complainant_t WHERE ComplainantID = ?", [$id]); 
     return $persons; 
} 

는 당신이 배열에 그것을 얼마나 좋아 : 내 모델에서

public function showDetails($action, $id) 
{ 
     $data_model= new PersonData(); 
     $persons= $data_model->loadSpecificPerson($id); 

     return view('pages.admin.reporting_person_details', ['action' => $action, 'id' => $id])->with('id', $id)->with(compact('persons')); 
} 

: 여기

내가 내 컨트롤러에있는 것입니다

$ person과 (와) 같이 사용할 수 없습니다. 객체이기 때문에 이름으로 액세스해야합니다. 그렇다면 열 이름으로 액세스하지 않고 어떻게해야합니까?

+0

값이 NULL이고 DB에 'NULL'이 아닌 것은 확실합니까? 두 개의 다른 것 – geckob

+0

'$ result = DB :: select ($ sql) -> get(); $ result = $ result-> toArray(); 그러면 객체를 배열로 변환합니다. –

+0

NULL 일 때 데이터베이스에 – geckob

답변

0

기본적으로 NULL 필드는 항상 표시됩니다. '' 빈 문자열. 하지만 그렇지 않다면 다음과 같이 달성 할 수 있습니다. 여기

foreach($persons as $person){ 
    //consider you want to display here 
    //Please check it's NULL or 'NULL' 
    echo $person->field === NULL ? '' : $person->field; 
} 

는 기본적으로 필드가 NULL 다음은 '' 빈 문자열 다른 표시의 경우는 원래의 값을 표시합니다, 모든 필드를 확인합니다.

희망은 당신을 돕는다!

+0

안녕하세요, 필드를 지정해야합니까? –

+0

당신의 데이타베이스'열 이름 '에 따라'field'를 변경하십시오 –

0

is_null 또는 === 연산자를 사용하십시오.

  • is_null
  • $의 원인이 [ '열'] === NULL

Laravel에서, 당신이 toArray`에 대해 읽을 수 있습니다 (결과 [ '열'] $)() '하는 것이다 객체를 배열로 변환하면 나중에 일반 논리를 사용할 수 있습니다. 참고 : 논리 모델

에서 https://laravel.com/docs/5.2/collections

return $persons->toArray(); 

$object = new stdClass(); 
foreach($array as $key => $value) 
{ 
    $array[$key] = is_null($value) ? '' : $value; 
    $object->$key = is_null($value) ? '' : $value; 
} 

내가이 사람이 아니에요 이후 다음 다른 $array 배열

+0

만약 내가 그것을 배열로 변환한다면, 객체 대신에 나의 블레이드를위한 배열을 사용해야할까요? –

+0

예 .... 블레이드에서만 개체를 ​​사용하고 배열로 변환하고 값을 조작하고 다시 개체로 변환하려면 ... – Naincy

+0

개체로 다시 변환하는 방법을 보여줄 수 있습니까? –

0

등의 변수 $object를 사용하여 객체를 사용하려면 사람 DB를 만들었습니다. 필드 값이 "NULL"(문자열)이기 때문에 문제가 발생했다는 것을 알았습니다. NULL로 변경했으며 빈 문자열로 변환 할 필요없이 현재 올바르게 작동합니다.

+0

정확히. 많은 사람들이 이것에 대해 혼란스럽게 생각합니다. – geckob

+0

@ geckob 예. 바보 같은 실수였습니다. 데이터베이스를보기 전까지는 그것을 깨닫지 못했습니다. 지적 해 주셔서 감사합니다! –