Tôi đang học Laravel và nó sử dụng khái niệm OOPS. Bây giờ tôi thấy khó hiểu được sự khác biệt thực sự giữa mảng và đối tượng. Tôi thực sự biết một mảng và đối tượng là gì.Nhầm lẫn giữa mảng và đối tượng trong Laravel
Mảng có thể chứa nhiều hơn một biến khi đối tượng là thực thể độc lập có đối số và phương pháp riêng. Chúng ta thường sử dụng vòng lặp foreach để lặp qua chúng.
Trong laravel, dữ liệu được trả về dưới dạng ví dụ mẫu làm đối tượng. Khi đáp ứng truy vấn có nhiều kết quả, thì dữ liệu được trả về dưới dạng một mảng chứa các đối tượng. Tôi đã cố gắng hiểu Class Collection được sử dụng trong laravel.
Codebright tham khảo nói
Lớp sưu tập riêng của mình, chỉ đơn thuần là một wrapper cho một mảng của các đối tượng, nhưng có một loạt các phương pháp thú vị khác để giúp bạn nhổ mục ra khỏi mảng.
Bây giờ trở lại sự nhầm lẫn của tôi. Tôi đã sử dụng các phương pháp khác nhau như các phương pháp all()
và first()
để tìm nạp kết quả. Nhưng đôi khi khi tôi sử dụng mũi tên (->
) để tìm nạp dữ liệu bằng cách sử dụng vòng lặp foreach, từ một đối tượng (chứa trong một mảng), nó cho thấy một lỗi nói rằng một cái gì đó giống như nó là một đối tượng không. Sau đó, tôi đã sử dụng dấu ngoặc vuông và dữ liệu được hiển thị.
Tôi biết chúng tôi sử dụng []
để tìm nạp dữ liệu từ mảng và chúng tôi sử dụng ->
để tìm nạp dữ liệu từ các đối tượng. Nhưng tôi vẫn còn bối rối về Laravel. Có thể ai đó nêu rõ sự khác biệt giữa chúng trong tham chiếu đến lớp Collection được sử dụng trong Laravel?
Sửa :: Sự rắc rối bắt đầu khi sử dụng mã này:
foreach($self_conversations as $self_conversations_fetch){
//fetching each conversation id
$conversation_id = Conversation::find($self_conversations_fetch->conversation_id);
$user_id = array();
//fetching each conversation member's id
foreach($conversation_id->conversationsMember as $conversationmembers)
$user_id[] = $conversationmembers->user_id;
$self_id = User::where('email', Session::get('email'))->first()->id;
$self_id_array = array($self_id);
$friend_id_array = array_diff($user_id, $self_id_array);
foreach($friend_id_array as $friend_id) array_push($friend_ids, $friend_id);
$conversations_reply_obj = ConversationReply::where('conversation_id', $self_conversations_fetch->conversation_id)->orderBy('updated_at', 'desc')->first();
$conversations_reply[] = $conversations_reply_obj['reply'];
}
Như bạn thấy, tôi đã sử dụng dấu ngoặc vuông để lấy dữ liệu (ở dòng cuối cùng).
$conversations_reply[] = $conversations_reply_obj['reply'];
tôi đã mong mũi tên để làm việc ở đây
Bạn có quản lý để giải quyết sự cố của mình không? – dspitzle