2017-01-13 3 views
1

Я хочу получить доступ к атрибуту name из таблицы практики, но я получаю коллекции. Мой код выглядит.Как получить доступ к определенному атрибуту в коллекции?

$practice = Practice::withTrashed()->where('id',$appointment->practice_id)->get(); 

dd($practice); 

и результат выглядит

Collection {#697 
    #items: array:1 [ 
    0 => Practice {#698 
     #dates: array:1 [ 
     0 => "deleted_at" 
     ] 
     #fillable: array:2 [ 
     0 => "name" 
     1 => "email" 
     ] 
     #connection: null 
     #table: null 
     #primaryKey: "id" 
     #keyType: "int" 
     #perPage: 15 
     +incrementing: true 
     +timestamps: true 
     #attributes: array:7 [ 
     "id" => 42 
     "name" => "DJ and Charlie Eye Associates" 
     "email" => "[email protected]" 
     "created_at" => "0000-00-00 00:00:00" 
     "updated_at" => "2017-01-13 06:29:14" 
     "liferay_id" => 57238 
     "deleted_at" => "2017-01-13 06:29:14" 
     ] 
     #original: array:7 [ 
     "id" => 42 
     "name" => "DJ and Charlie Eye Associates" 
     "email" => "[email protected]" 
     "created_at" => "0000-00-00 00:00:00" 
     "updated_at" => "2017-01-13 06:29:14" 
     "liferay_id" => 57238 
     "deleted_at" => "2017-01-13 06:29:14" 
     ] 
     #relations: [] 
     #hidden: [] 
     #visible: [] 
     #appends: [] 
     #guarded: array:1 [ 
     0 => "*" 
     ] 
     #dateFormat: null 
     #casts: [] 
     #touches: [] 
     #observables: [] 
     #with: [] 
     #morphClass: null 
     +exists: true 
     +wasRecentlyCreated: false 
     #forceDeleting: false 
    } 
    ] 
} 

Есть ли способ, чтобы сделать, так что я могу получить имя "DJ и Чарли Eye Associates". Я использовал методThrashed, потому что эта запись мягко удалена в таблице практики.

ответ

2

Прежде всего, необходимо получить объект из коллекции, а затем вы можете получить любое свойство этого объекта:

$practice->first()->name; 

Или:

$practice[0]->name; 
2

Вы можете использовать цикл Еогеасп

foreach($collection as $collect){ 
    dd($collect->name); 
} 

или вы можете просто преобразовать коллекцию в массив

$array = $collection->toArray(); 
dd($array[0]->name); 

или

$collection->first()->name; 

Надежда Это помогает вам.

Спросите, если любой запрос

+0

он должен работать .. –

1

Вы могли бы просто получить это с помощью этого

dd($practice[0]->name); 

Или, если вы знаете, что ваш запрос будет возвращать только один объект, который вы могли бы использовать ->first() вместо ->get(), а затем вы мог использовать.

dd($practice->name); 

->first() дает первый объект

->get() дает массив объектов.

1
$practice = Practice::withTrashed()->where('id',$appointment->practice_id)->get()->get('name'); 

dd($practice); 

Хотя это невероятно уродливый и вы, вероятно, читаете «Коллекции»: ваше заявление делает именно то, что говорит Ларавель.

https://laravel.com/docs/5.3/collections

 Смежные вопросы

  • Нет связанных вопросов^_^