toArray()
メソッドをオーバーライドして、返すフィールドの配列を取ることができます。
// Will return an array with all the fields.
$full = $user->toArray();
// Will return an array with only x, y, and z fields.
$partial = $user->toArray(['x', 'y', 'z']);
NB:これは親toArray()
メソッドを呼び出すので、このオーバーライドされたメソッドは、まだ$hidden
属性を尊重し、あなたのUserモデルでオーバーライドこの方法で
public function toArray(array $fields = [])
{
// Get the full, original array.
$original = parent::toArray();
// If no fields are specified, return the original array.
// This ensures that all existing code works the same
// way as before.
if (empty($fields)) {
return $original;
}
// Return an array containing only those fields specified
// by the input parameter.
return array_key_intersect($original, array_flip($fields));
}
は、あなたが今、次のコードを持つことができます。したがって、
y
を非表示にして
$user->toArray(['x', 'y', 'z']);
と呼び出すと、結果の配列に
y
という値は含まれません。
[$ user-> x、$ user-> y、$ user-> z]を返すか、ローカルスコープでカスタマイズすることができます。https://laravel.com/docs/5.4/eloquent#local-scopes – MarcosRJJunior