3 回答

TA貢獻1810條經驗 獲得超4個贊
這是不可能的。由于 Blade 是一種 PHP 模板語言,你只能做 PHP 允許的事情……而且它不允許你在局部變量上強制轉換類型。
您只能鍵入提示函數參數和 - 在新發布的 PHP 7.4 中 - 類屬性。你也可以給你的函數一個返回類型。
PHP 7+:
public function foo(string $bar): int
{
return strlen($bar);
}
PHP 7.4+:
protected int $count;
當然,我的示例是使用標量類型(字符串、整數、浮點數、布爾值)制作的,但您完全可以在此處放置自定義類。
public function logout(App\User $user)
{
//stuff
}

TA貢獻1784條經驗 獲得超8個贊
您在問題中提供的信息很少,但是由于您使用的是@foreach,因此您可以按以下方式進行類型轉換,這應該可以工作:
@foreach($collection as $object)
@php($object = (object)$object)
......
@endforeach
這應該允許您使用$object->item

TA貢獻1772條經驗 獲得超5個贊
您可以使用Collection::whereInstanceOf()過濾掉任何不屬于您想要的類的東西。 https://laravel.com/docs/5.8/collections#method-whereinstanceof
@foreach($collection->whereInstanceOf(CustomClass) as $object)
如果你想簡單地出錯,如果不是你的類,那么你可以比較集合的大小。但我建議在控制器中執行此操作:
if ($collection->whereInstanceOf(CustomClass)->count() !== $collection->count()) {
throw Exception();
}
- 3 回答
- 0 關注
- 116 瀏覽
添加回答
舉報