W Lavel, stanęłem w obliczu tego problemu podczas korzystania z tablicy seryjnej w kontrolerze. Muszę go użyć, ponieważ chcę pokazać dane z obu macierzy i pokażę je w jednym stole Lavel, więc jak mogłem rozwiązać ten błąd i co to znaczy? mój kontroler.

 $array1=DB::table('table1')
              ->whereDate('created_at', Carbon::today())
              ->select('table1.name as name','table1.age as age')
              ->get();
    $array2=DB::table('table1')
              ->leftJoin('table_2','table1.id','=','table2.table1_id')
              ->whereDate('new_date', Carbon::today())
              ->select('table1.name as name','table2.age as age')
              ->get();
    $data=array_merge(array($array1,$array2));
    
    return view('index')->with('records',$data)

Mój widok

@foreach($records as $record)
<td>{{$record->name}}</td>
@endforeach

Błąd

Property [name] does not exist on this collection instance
0
alex roger 13 kwiecień 2021, 15:06

4 odpowiedzi

Najlepsza odpowiedź

Spróbuj dodać -> Tobarray () po -> Get ().

Iw widoku Użyj {{$ Record ['Name']}}.

I użyj tablicy scalonej w ten sposób: $ Data = array_merge ($ Array1, $ Array2);

0
Zakaria Ab 13 kwiecień 2021, 12:12

get() Zwraca kolekcję, która nie jest tablicą, więc powinieneś użyć Metoda scalania kolekcji

$data= $array1->merge($array2);
0
apokryfos 13 kwiecień 2021, 12:20

Łączysz swoją tablicę wyników w niewłaściwy sposób ...

Powinieneś przekazać swoje tablice jako parametry, a nie macierzy parametrów

$array1=DB::table('table1')
              ->whereDate('created_at', Carbon::today())
              ->select('table1.name as name','table1.age as age')
              ->get()->toArray();
    $array2=DB::table('table1')
              ->leftJoin('table_2','table1.id','=','table2.table1_id')
              ->whereDate('new_date', Carbon::today())
              ->select('table1.name as name','table2.age as age')
              ->get()->toArray();
    $data=array_merge($array1,$array2);

I upewnij się, że używasz metody toArray(), aby przekonwertować wynik zapytania do tablicy.

W ostrzu należy uzyskać dostęp do zmiennej jako elementu tablicy, a nie obiektem:

$record['name']

Zobacz PHP Array_Merge

0
OMR 13 kwiecień 2021, 12:18

Jego dlatego, że strzałka jest dla obiektów i nie działa dla tablarek

Powinieneś użyć $ Record ['Name'] i jeśli ta tablica ma ten indeks, będzie to pokazać

W przeciwnym razie nie ma tego indeksu!

0
milad hedayatpoor 13 kwiecień 2021, 12:09