簡體   English   中英

如何防止Laravel Blade剝離字母數字字符串?

[英]How do I keep Laravel Blade from stripping out alphanumeric strings?

我的模型上有一個ID字段,其中包含6f7fb019-1a57-4beb-916a-8605868c19a2等字母數字字符串

在Blade中,我嘗試{{ $var->ID }}

即使我將其包裹在{!! !!} {!! !!}

但是,當我將文字字符串用雙引號括起來,例如{{ " 6f7fb019-1a57-4beb-916a-8605868c19a2" }}一切都很好。

刀片模板代碼:

    @foreach($work_requests as $work_request)
        <tr>
            <th scope="row">{{$work_request->ID}}</th>
            <td>{{$work_request->STATUS}}</td>
            <td>{{$work_request->created}}</td>
        </tr>
    @endforeach

來自dd原始模型

    #attributes: array:4 [▼
      "ID" => "6f7fb019-1a57-4beb-916a-8605868c19a2"
      "JSON" => ""
      "STATUS" => " [ CONFIDENTIAL ] "
      "created" => 1550623543
    ]

來自控制器:

public function index()
{
    $work_requests = WorkRequest::orderby('created','desc')->paginate(25);
    dd($work_requests);
    return view('workrequests.index')->with('work_requests',$work_requests);
}

進一步說明

因此,對於這些值,我得到了相應的打印結果:

  • 6f7fb019-1a57-4beb-916a-8605868c19a2返回6
  • c904b27a-9b85-4782-a2de-deea0b9bbf18返回0
  • 53da0384-3a34-413c-bb73-b3e7b1d589ef返回53
  • 86dd13d5-dd90-4734-9258-fba6742dd574返回86

嘗試使用compact,但是在變量名上使用它(請注意語法):

return view('workrequests.index', compact ('work_requests'));

對於從刀片出來的數字-這可能是因為默認情況下,Laravel中的主鍵被強制轉換為int例如:

(int) "6f7fb019-1a57-4beb-916a-8605868c19a2" == 6

它仍然是一個字符串,但是如果通過模型的ID調用它,它將通過__get()方法,並成為一個int。 您可以通過在模型中強制轉換來告訴Laravel確保它是一個字符串:

protected $casts = ['id' => 'string'] ;

您也可以直接轉到id函數,並告訴Laravel不要遞增,這可能比$casts變量更精確地幫助您:

public $incrementing = false;

高溫超導

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM