所以,我有两个条件,我 Package 使用如果与“或”操作符。以前它的工作很好使用“和”操作符,但当我只更新一个文件上传它不运行,但如果两个文件上传的更新是成功的。为了弥补缺点,我想用“或”操作符替换它,但它是一个错误。
我的代码,
if (Request()->sampul or Request()->buku <> "") {
//upload gambar/foto dan buku
$file = Request()->sampul;
$fileName = Request()->slug . '.' . $file->extension(); //rename nama berdasarkan slug
$file->move(public_path('file_buku'), $fileName);
$file1 = Request()->buku;
$fileName1 = Request()->nama . '.' . $file1->extension(); //rename nama berdasarkan nama
$file1->move(public_path('file_buku'), $fileName1);
$data = [
'nama' => Request()->nama,
'slug' => Request()->slug,
'created_at' => Request()->created_at,
'sampul' => $fileName,
'buku' => $fileName1
];
$this->BukuModel->editData($id_buku, $data);
} else {
//Jika tidak ingin ganti sampul dan buku
$data = [
'nama' => Request()->nama,
'slug' => Request()->slug,
'created_at' => Request()->created_at
];
$this->BukuModel->editData($id_buku, $data);
}
1条答案
按热度按时间ecbunoof1#
你的代码所做的是运行
if
块,如果sampul或buku的任何非空数据不是“”。所以,如果这两个条件中的任何一个通过,那么if块将运行。您的
Request()->buku <> ""
条件已通过,这意味着Request()->sampul
为空。现在,在这个代码块中,您试图从null/empty值访问extension(),所以您得到了这个错误。
您的代码应该如下所示:
另外,使用
or
和and
不是一个好的做法。请尝试使用||
和“&&”。