Saya mengikuti video Laracasts: Basic Model / Controller / View Workflow .
Saya memiliki tabel berisi informasi kontak.
CREATE TABLE `about` (
`id` int(10) UNSIGNED NOT NULL,
`title` varchar(500) COLLATE utf8_unicode_ci NOT NULL,
`content` text COLLATE utf8_unicode_ci,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
Saya mencoba mengirimkan data untuk dilihat menggunakan kode berikut di file pengontrol:
public function index()
{
$about = Page::where('page', 'about-me')->get(); //id = 3
return view('about', compact('about'));
}
Ketika saya mencoba menampilkan kode seperti yang ditunjukkan di bawah ini,
@section('title')
{{$about->title}}
@stop
@section('content')
{!! $about->content !!}
@stop
Saya mendapatkan kesalahan yang mengatakan:
Properti [judul] tidak ada pada contoh koleksi ini. (Tampilan: E: \ laragon \ www \ newsite \ resources \ views \ about.blade.php)
Tetapi jika saya mengubah metode pengambilan di file pengontrol, itu berhasil.
public function index()
{
$about = Page::find(3);
return view('about', compact('about'));
}
Ketika saya menggunakan dd($about)
dalam case pertama ( where()->get()
) data dienkapsulasi oleh array. Dalam case kedua ( find(3)
) ini menampilkan data seperti yang diharapkan.
Apa yang saya lakukan salah?
sumber
Dengan
get()
metode Anda mendapatkan kumpulan (semua data yang cocok dengan kueri), coba gunakanfirst()
sebagai gantinya, itu hanya mengembalikan satu elemen, seperti ini:$about = Page::where('page', 'about-me')->first();
sumber
$about = DB::where('page', 'about-me')->first();
sebagai ganti
get()
.Ini bekerja pada proyek saya . Terima kasih.
sumber
Anda Harus Menggunakan kata kunci Collection di Controller. Seperti di sini..
public function ApiView(){ return User::collection(Profile::all()); }
Di sini, Pengguna adalah Nama Sumber Daya dan Profil adalah Nama Model. Terima kasih.
sumber
Seseorang mungkin mendapatkan ini saat bekerja dengan fungsi pabrik, jadi saya dapat mengonfirmasi bahwa ini adalah sintaks yang valid:
$user = factory(User::class, 1)->create()->first();
Anda mungkin melihat kesalahan contoh koleksi jika Anda melakukan sesuatu seperti:
$user = factory(User::class, 1)->create()->id;
jadi ubahlah menjadi:
$user = factory(User::class, 1)->create()->first()->id;
sumber
$about->first()->id
atau$stm->first()->title
dan masalah Anda terselesaikan.sumber