[英]Laravel whereNull and where clause returns empty object
我是 laravel 的新手。我試圖從我的數據庫中獲取一些記錄,這些記錄是“父”列為“空”。 但它總是返回空 object。然后我使用 toSql() function 獲得查詢並在數據庫上手動運行它。 查詢工作正常。 為什么 laravel 什么都不返回?
laravel 版本為:8.1.0
這是我的 model
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Category extends Model
{
use HasFactory;
protected $fillable = [
'title',
'child_level',
'type',
'meta_url',
'meta',
'parent'
];
public function teacher() {
return $this->belongsToMany(
Teacher::class,
'category_teachers',
'category_id',
'teacher_id',
);
}
}
這是我在 controller 中的 function
public function mainCourses() {
$main_courses = Category::whereNull('parent');
if (isset($main_courses)) {
return response(['main_courses' => $main_courses], 200);
}
return response(['message' => 'No main courses in database'] , 404);
}
這是數據庫表
當我調用該方法時,它會返回這樣的響應。
我想返回所有“parent”列為“null”的記錄。 這有什么問題? 還有其他方法嗎? 幫我...
$main_courses = Category::whereNull('parent');
$main_courses
在這種情況下將只是一個查詢生成器
您應該使用 get() function 從數據庫中獲取結果
$main_courses = Category::whereNull('parent')->get();
試試這個:
$mainCourse = Category::whereNull('parent')->get();
if (!empty($mainCourse)) {
return response(['main_courses' => $main_courses], 200);
}
return response(['message' => 'No main courses in database'] , 404);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.