Laravel mongodb不保护属性
大家好,我正在使用jessengers mongodb扩展,我已经有了一个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
<?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,则使用这两个属性将创建未定义的行为,因此使用这两个属性没有多大意义)