Laravel Eloquent可空字段值转换为字符串“NULL”

时间:2017-02-22 06:12:02

标签: php laravel laravel-5.2

我的模型中有一个查询来从数据库中获取数据,并且我的数据库表中存在可以为空的字段。当我尝试在视图中显示所有记录时,空值的字段显示为“NULL”。我希望这些值显示为空字符串。

以下是我在控制器中的内容:

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'));
}

在我的模特中:

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

我想这样做就像你在数组中这样做:

foreach($array as $key => $value)
{
   if($array[$key] == NULL)
   {
        $array[$key] = "";
   }
}

这不可能与$ person一起使用,因为它是一个对象,必须使用名称访问吗?那么如何在不必通过列名访问它的情况下执行此操作呢?

2 个答案:

答案 0 :(得分: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,那么它将显示''空字符串,否则它将显示原始值。

希望它可以帮到你!

答案 1 :(得分:0)

由于我不是制作数据库的人,我刚刚意识到这个问题是因为字段值是" NULL" (串)。我已经将它修改为NULL并且它现在正常工作,而不必将其转换为空字符串。