簡體   English   中英

Laravel whereNull 和 where 子句返回空 object

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM