public function index()
{
/*
1. DB에서 리스트를 가져온다.
2. 그 리스트를 블레이드 컴포넌트에게 전달한다.
*/
$cars = Car::all();
}
코드 | 설명 |
---|---|
$cars = Car::latest()->get(); | 사용자가 최신순으로 보고 싶어 할 경우 |
return view('cars.index', ['cars'=>$cars]); | 두번째 인자로 들어가는 배열은 동적으로 만들기 위해 들어가는 것이다. |
블레이드 컴포넌트 만들기
코드 | 설명 |
---|---|
php artisan make:component cars/Index | 폴더이름/클래스이름 |
클래스파일을 만들고, 안에 블레이드 파일이 생성됨
컨트롤러에서 준 정보를 컴포넌트 클래스에서 받아 줘야함
-> 컴포넌트 클래스 생성자에서 받을 거임
https://laravel.com/docs/8.x/blade#passing-data-to-components
변수를 퍼블릭으로 선언해 두면 클래스파일에 생성자로 받아온 변수를 블레이드 파일에서도 쓸 수 있게 됨
index.blade.php
<div>
@foreach ( $cars as $car )
<div>{{ $car->name }}</div>
@endforeach
</div>
변수 car를 반복해서 출력
안에 내용이 없기 때문에 팩토리를 사용해서 가짜 데이터를 넣어 줌
> php artisan make:factory CarFactory
<?php
namespace Database\Factories;
use App\Models\Company;
use Illuminate\Database\Eloquent\Factories\Factory;
class CarFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
$c = new Company();
$c->name = '현대';
$c->save();
return [
'image'=> $this->faker->name(),
'company_id'=> $c->id,
'name'=> $this->faker->name(),
'year'=> 2021,
'price'=> 3000,
'type'=> '세단',
'style'=> 'SUV',
];
}
}
factory에 어떤 값이 들어가야 하는지 적어주고,
tinker 를 사용해 가짜데이터를 넣어 준다.
php artisan tinker
Car::factory()->count(10)->create();
코드 | 설명 |
---|---|
php artisan storage:link | 두개를 연결 시켜 놓는것 |