Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对laravel上的字符串调用成员函数diff()_Laravel - Fatal编程技术网

对laravel上的字符串调用成员函数diff()

对laravel上的字符串调用成员函数diff(),laravel,Laravel,在我的控制器上,我有以下代码: public function receita(Request $request){ $id = $request['id']; $marcacao = Marcacao::find($id); $produtos = ProdutoUnidade::where('unidade_id', $marcacao->agenda->vinculo->unidade->id)

在我的控制器上,我有以下代码:

public function receita(Request $request){
    $id = $request['id'];
    $marcacao = Marcacao::find($id);

    $produtos = ProdutoUnidade::where('unidade_id', $marcacao->agenda->vinculo->unidade->id)
                              ->get();

    $vencimento = new DateTime(date("y-m-d"));
    $vencimento->add(new DateInterval('P90D'));
    $vencimento = $vencimento->format('y-m-d');

    return view('agendas.receita', compact('marcacao', 'produtos', 'vencimento'));
}
在我的刀刃上,我有:

@foreach($produtos as $produto)
    <option value="{{$produto->id}}">
        {{$vencimento->diff($produto->produtoNota->dataValidade) > 60 ? '0' : '1'}}
    </option>
@endforeach
@foreach($produto作为$produto)
{{$vencimento->diff($produto->produnota->dataValidade)>60?'0':'1'}
@endforeach
我想知道$vencimento和$produto->produtoNota->dataValidade的差值是否大于60,但我收到了错误:

对字符串调用成员函数diff()


有什么帮助吗?

在控制器中,您可以使用
$vencimento=$vencimento->format('y-m-d')将DateTime转换为字符串然后将此变量传递给视图

因此,您正在通过字符串调用
->diff
。如果需要输出格式化的DateTime,请传递DateTime对象以在其中查看并格式化它


另外,我建议用碳来代替。

我对这行注释
$vencimento=$vencimento->format('y-m-d')并生成其他错误:
DateTime::diff()期望参数1是DateTimeInterface,给定字符串
如何使用carbon?我假设您没有将日期从数据库强制转换为carbon对象。看见