簡體   English   中英

"在 laravel 視圖中使用碳函數(刀片模板)"

[英]use carbon function in laravel view(Blade template)

我從數據庫中獲取了一些值,並將這些值從控制器<\/strong>傳遞到視圖中。 現在我想在Laravel 視圖<\/strong>中使用帶有一些carbon function<\/code>的數據。

在我的視圖文件中我寫了

foreach($customer as $time){

        $create= $time->created_at;
        $update= $time->updated_at;

        $create_at_difference=\Carbon\Carbon::createFromTimestamp(strtotime($create))->diff(\Carbon\Carbon::now())->days;


}

它與我的 view.blade.php 的全局命名空間一起使用

      {{ \Carbon\Carbon::parse($row->posted_at)->diffForHumans() }}

如果要使用命名空間類,則不需要第一個斜杠:

 $create_at_difference=Carbon\Carbon::createFromTimestamp(strtotime($create))->diff(\Carbon\Carbon::now())->days;

你應該只寫 Carbon\\Carbon 而不是 \\Carbon\\Carbon。

這是一個快速的解決方案。 但是,直接在視圖中使用類是個壞主意。 您可以通過創建一個函數來為您的模型添加更多功能,該函數將返回在差異處創建的電流。

假設您有客戶模型,您可以這樣做:

use Carbon\Carbon;

class Customer extends Eloquent
{
      public function created_at_difference()
      {
           return Carbon::createFromTimestamp(strtotime($this->created_at))->diff(Carbon::now())->days;
      } 
}

然后在視圖中,您可以像這樣訪問:

@foreach($customers as $customer)
   {{$customer->created_at_difference()}}
@endforeach

另一種選擇,我認為最好將這行代碼放在您的班級之上:

namespace App\Http\Controllers


use Carbon\Carbon;


class MyController {
  ...
}

面臨同樣的問題,這對我有用

$create = $time->created_at;

$create_at_difference = Carbon\Carbon::createFromTimestamp(strtotime($create))
                    ->diff(\Carbon\Carbon::now())->days;

使用刀片注射以獲得最干凈的結果。 例子:

@inject('carbon', 'Carbon\Carbon')
...
<span>{{ $carbon::parse($model->created_at) }}</span>

不要重復\\Carbon\\Carbon ,只需嘗試

\\Carbon::createFromTimestamp(strtotime($create))->diff(\\Carbon::now())->days

暫無
暫無

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

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