Saya menghadapi isu pelik apabila membandingkan objek dengan rentetan dalam fail bilah Laravel.
Saya mempunyai pembolehubah yang boleh menjadi rentetan ("N/A") atau objek bergantung pada hasil pertanyaan pangkalan data dan saya mempunyai semakan bersyarat berikut:
@if ($a_string_name == 'N/A')
Jika objek dikembalikan, bagi kebanyakan pengguna syarat ini akan gagal dan pelaksanaan pernyataan else akan diteruskan.
Tetapi untuk satu kes tertentu (saya tidak mempunyai maklumat yang mencukupi untuk menyatakan cara menghasilkan semula ini), keadaan ini menimbulkan ralat:
Kaedah IlluminateSupportCollection::__toString() mesti mengembalikan nilai rentetan
Saya tidak dapat mengetahui apa yang berlaku atau jika ini adalah isu khusus laravel/pelayar.
PHP v7.4.22, laravel v6.0
Berdasarkan soalan anda di atas, saya rasa anda ingin menyemak sama ada pembolehubah ditetapkan dengan nilai yang diberikan. Dalam kes anda, cuba gunakan@if(isset($a_string_name)).
Kami biasanya menggunakan dua kaedah PHP untuk menyemak pembolehubah.
Bagaimana untuk menyemak sama ada pembolehubah ditakrifkan dalam PHP? Fungsi isset() menyemak sama ada pembolehubah ditetapkan, yang bermaksud pembolehubah mesti diisytiharkan dan bukan NULL. Fungsi mengembalikan benar jika pembolehubah wujud dan bukan NULL, sebaliknya palsu.
Bagaimana untuk menyemak sama ada pembolehubah yang diberikan kosong? Fungsi empty() menyemak sama ada pembolehubah kosong. Fungsi mengembalikan palsu jika pembolehubah wujud dan tidak kosong, jika tidak ia mengembalikan benar. Nilai berikut dinilai kepada nol: 0.
Semoga ini membantu.