Laravel Blade: String mit Objekt vergleichen
P粉797855790
2023-09-01 21:44:49
<p>Ich stoße auf ein seltsames Problem, wenn ich ein Objekt mit einer Zeichenfolge in einer Laravel-Blade-Datei vergleiche. </p>
<p>Ich habe eine Variable, die abhängig vom Ergebnis der Datenbankabfrage eine Zeichenfolge („N/A“) oder ein Objekt sein kann, und ich habe die folgende bedingte Prüfung: </p>
<pre class="brush:php;toolbar:false;">@if ($a_string_name == 'N/A')</pre>
<p>Wenn ein Objekt zurückgegeben wird, schlägt diese Bedingung für die meisten Benutzer fehl und die Ausführung der else-Anweisung wird fortgesetzt. </p>
<p>Aber für einen bestimmten Fall (ich habe nicht genügend Informationen, um zu sagen, wie ich das reproduzieren kann) löst diese Bedingung einen Fehler aus: </p>
<pre class="brush:php;toolbar:false;">Methode IlluminateSupportCollection::__toString() muss einen String-Wert zurückgeben</pre>
<p>Ich kann nicht herausfinden, was falsch läuft oder ob es sich um ein laravel-/browserspezifisches Problem handelt. </p>
<p>PHP v7.4.22, Laravel v6.0</p>
根据您上面的问题,我认为您想检查给定值是否设置了变量。在您的情况下,请尝试使用@if(isset($a_string_name))。
我们通常使用两种 PHP 方法来检查变量。
如何检查 PHP 中是否定义了变量? isset() 函数检查变量是否已设置,这意味着该变量必须声明且不为 NULL。如果变量存在且不为 NULL,则该函数返回 true,否则返回 false。
如何检查给定变量是否为空? empty() 函数检查变量是否为空。如果变量存在且不为空,则该函数返回 false,否则返回 true。以下值计算为空:0。
希望这对您有所帮助。