无法在我的 laravel .blade 视图中使用 Carbon Laravel 方法
Can't use Carbon Laravel method in my laravel .blade view
在我的控制器中,我得到当前日期和另一个日期,我将这个参数发送到我的 view.blade:
$current_date = Carbon::now('Europe/Madrid');
$second_date = Carbon::create(2016, 6, 3, 00, 00, 00, 'Europe/Madrid');
在我的控制器中这个函数工作正常:
$current_date->lt($second_date) # true
但是在我的blade.phpLaravel报这个错误:
efcb37f79f0e8cb86e0f747997c402d6f7026ada.php 第 112 行中的 FatalErrorException:
在 string
上调用成员函数 lt()
我调试了我的 laravel 视图,lt() 方法收到了正确的 Carbon 对象
Carbon {#361 ▼
+"date": "2016-06-03 00:00:00.000000"
+"timezone_type": 3
+"timezone": "Europe/Madrid"
}
这里发生了什么?
我的查看代码:
@foreach ($articles_rows as $articles_row)
@if($current_date->lt($articles_row['expiration_date']))
<div class="row">
...show articles here
</div>
@endif
@endforeach
我的控制器代码:
$articles_rows = array (
array(
'img_src' => FuImg::asset('img/regalos-para-profesores.jpg'),
'img_alt' => 'Regalos para profesores',
'expiration_date' => Carbon::create(2016, 6, 3, 00, 00, 00, 'Europe/Madrid'),
'class' => 'teacher-gifts',
'articles' =>
# Articulos
FotiArticle::getList(array(
'fields' => 'article_id,name,group_id,group,price_pvp_currency,quantity,prices,stock_available',
'expand' => 'group,prices',
'article_id' => '2829,186,2875,1728',
'order' => 'PRICE',
)),
),
array(
'img_src' => Img::asset('img/regalos-ocasiones-especiales.jpg'),
'img_alt' => 'Ocasiones especiales',
'expiration_date' => Carbon::create(2016, 6, 2, 00, 00, 00, 'Europe/Madrid'),
'class' => 'wedding',
'articles' => Article::getList(array(
'fields' => 'article_id,name,group,price_pvp_currency,quantity,prices,stock_available',
'expand' => 'prices',
'article_id' => '1611,4481,50,5345',
'order' => 'PRICE',
)),
),
);
这里的问题是 $articles_row['expiration_date']
被认为是 string
而不是 Carbon
class 的对象。所以解决方法是,您需要使用 parse
方法为您的 $articles_row['expiration_date']
创建一个 Carbon
class 的对象,例如 as
$current_date->lt(\Carbon\Carbon::parse($articles_row['expiration_date']))
正在为未来的用户更新 OP 答案
(\Carbon\Carbon::parse($current_date)->lt($articles_row['expiration_date']))
OP 在其自己的变量 $current_date
中面临问题,因为问题是但逻辑上正确 date
不是 Carbon
对象。
在我的控制器中,我得到当前日期和另一个日期,我将这个参数发送到我的 view.blade:
$current_date = Carbon::now('Europe/Madrid');
$second_date = Carbon::create(2016, 6, 3, 00, 00, 00, 'Europe/Madrid');
在我的控制器中这个函数工作正常:
$current_date->lt($second_date) # true
但是在我的blade.phpLaravel报这个错误: efcb37f79f0e8cb86e0f747997c402d6f7026ada.php 第 112 行中的 FatalErrorException: 在 string
上调用成员函数 lt()我调试了我的 laravel 视图,lt() 方法收到了正确的 Carbon 对象
Carbon {#361 ▼
+"date": "2016-06-03 00:00:00.000000"
+"timezone_type": 3
+"timezone": "Europe/Madrid"
}
这里发生了什么?
我的查看代码:
@foreach ($articles_rows as $articles_row)
@if($current_date->lt($articles_row['expiration_date']))
<div class="row">
...show articles here
</div>
@endif
@endforeach
我的控制器代码:
$articles_rows = array (
array(
'img_src' => FuImg::asset('img/regalos-para-profesores.jpg'),
'img_alt' => 'Regalos para profesores',
'expiration_date' => Carbon::create(2016, 6, 3, 00, 00, 00, 'Europe/Madrid'),
'class' => 'teacher-gifts',
'articles' =>
# Articulos
FotiArticle::getList(array(
'fields' => 'article_id,name,group_id,group,price_pvp_currency,quantity,prices,stock_available',
'expand' => 'group,prices',
'article_id' => '2829,186,2875,1728',
'order' => 'PRICE',
)),
),
array(
'img_src' => Img::asset('img/regalos-ocasiones-especiales.jpg'),
'img_alt' => 'Ocasiones especiales',
'expiration_date' => Carbon::create(2016, 6, 2, 00, 00, 00, 'Europe/Madrid'),
'class' => 'wedding',
'articles' => Article::getList(array(
'fields' => 'article_id,name,group,price_pvp_currency,quantity,prices,stock_available',
'expand' => 'prices',
'article_id' => '1611,4481,50,5345',
'order' => 'PRICE',
)),
),
);
这里的问题是 $articles_row['expiration_date']
被认为是 string
而不是 Carbon
class 的对象。所以解决方法是,您需要使用 parse
方法为您的 $articles_row['expiration_date']
创建一个 Carbon
class 的对象,例如 as
$current_date->lt(\Carbon\Carbon::parse($articles_row['expiration_date']))
正在为未来的用户更新 OP 答案
(\Carbon\Carbon::parse($current_date)->lt($articles_row['expiration_date']))
OP 在其自己的变量 $current_date
中面临问题,因为问题是但逻辑上正确 date
不是 Carbon
对象。