Laravel mongodb不保护属性

Laravel mongodb不保护属性,mongodb,laravel,Mongodb,Laravel,大家好,我正在使用jessengers mongodb扩展,我已经有了一个mongodb填充,问题是它正在显示受保护的属性,我的代码是: 型号: <?php namespace App; use Jenssegers\Mongodb\Model as Eloquent; use \Jenssegers\Mongodb\Eloquent\SoftDeletes; class Pessoas extends Eloquent { public $guarded = ['passw

大家好,我正在使用jessengers mongodb扩展,我已经有了一个mongodb填充,问题是它正在显示受保护的属性,我的代码是:

型号:

<?php

namespace App;

use Jenssegers\Mongodb\Model as Eloquent;
use \Jenssegers\Mongodb\Eloquent\SoftDeletes;

class Pessoas extends Eloquent
{
    public $guarded = ['password'];
    public $fillable = ['nome'];

}
返回

  0 => Pessoas {#147 ▼
      +guarded: array:1 [▶] **<<<< 1 guarded**
      +fillable: array:1 [▶]  **<<<<<< 1 fillable**
      #collection: null
      #primaryKey: "_id"
      #parentRelation: null
      #connection: null
      #table: null
      #perPage: 15
      +incrementing: true
      +timestamps: true
      #attributes: array:27 [▶] **<<<<<<< 1 was expected or 26**
      #original: array:27 [▶] **<<<<<< ok**
      #relations: []
      #hidden: []
      #visible: []
      #appends: []
      #dates: []
      #dateFormat: null
      #casts: []
      #touches: []
      #observables: []
      #with: []
      #morphClass: null
      +exists: true
      +wasRecentlyCreated: false
    }
0=>Pessoas{#147▼

+防护:阵列:1[▶] ** 使用Jessengers Mongodb扩展的查询返回一个
集合
对象。由于您正在转储该对象的值,您将看到该对象的受保护属性和公共属性。要防止出现这种情况,您应该在
集合
对象上使用
toArray()
方法

Route::get('/pessoas', function () {
    $pessoas = \App\Pessoas::all();
     dd($pessoas->toArray());
});

使用Jessengers Mongodb扩展的查询返回一个
集合
对象。由于您正在转储该对象的值,您将看到该对象的受保护属性和公共属性。要防止出现这种情况,您应该在
集合
对象上使用
toArray()
方法

Route::get('/pessoas', function () {
    $pessoas = \App\Pessoas::all();
     dd($pessoas->toArray());
});

我来晚了一点,但我认为你不应该同时使用$fillable和$CURDED。$fillable是一个白名单,$CURDED是一个黑名单。你必须选择哪个行为更适合你。如果两者都被指定,AFAIK Laravel只会使用其中一个。(如果属性既不是$fillable也不是$guarded,则使用这两个属性将创建未定义的行为,因此使用这两个属性没有多大意义)我来晚了一点,但我认为你不应该同时使用$fillable和$CURDED。$fillable是一个白名单,$CURDED是一个黑名单。你必须选择哪个行为更适合你。如果两者都被指定,AFAIK Laravel只会使用其中一个。(如果属性既不是$fillable也不是$guarded,则使用这两个属性将创建未定义的行为,因此使用这两个属性没有多大意义)