▶CRUD

목록 : public function index() { }        /post        GET

작성 : public function create() { }        /post/create GET

DB넣는 일 : public function store() { }        /post    POST

목록에서 post출력 : public function show($id) { }    /post/{postId}    GET

수정 : public function edit($id){ }        /post/{postId}edit    GET

업데이트 : public function update($id){ }    /post/{postId} PUT|PATCH

삭제 : public function destroy($id){ }    /post/{postId} DELETE


▶tinker콘솔

-테이블명을 모델명으로 바꿔주는 도우미함수

str_singular(studly_case('article_categories'))


▶Helper function

route('라우트 이름') : 라우트 이름에 해당하는 url을 생성

redirect('url') : 해당 경로로 리다이렉트

redirect()->route('라우트이름') : 해당 라우터 이름의 url로 이동


▶엘로퀀트 ORM , 쿼리빌더

-데이터 모두 가져오기

App\Project::all();


-첫번째 데이터 가져오기

App\Project::first();


-객체 만들기

$project = new App\Project;

-객체 데이터 삽입

$project->title = "My First Project";

-객체 저장

$project->save();


-title컬럼 가져오기

App\Project::first()->title;


-0번째 가져오기

App\Project::all[0];


-1번째 title 컬럼가져오기

App\Project::all()[1]->title;


-title컬럼만 가져오기

App\Project::all()->map->title;


-컬럼의 행 더하기

$atats = users_stats::where('id', 7)->value(DB::raw("SUM(logins_sun + logins_mon)"));


-공정의 모든 행을 더한다. total

$works = DB::table('works')->select(DB::raw('*,(smt+dip+aoi+wave+cutting+touchup+coting+ass+packing+ready+ect1+ect2+wo+per) as total'))->latest()->paginate(10);



-데이터 바인딩하기 Project의 모든 데이터를 가져와서 projects/index.blade.php 파일에 넘겨준다.

public function index(){

$projects = \App\Project::all();

return view('projects.index', compact('projects');

}


-넘긴 데이터 받기 projects/index.blade.php 

@foreach($projects as $project)

{{ $project->title }}

@endforeach


DB::table('posts')->where('id', '=' , 1)->get();

DB::table('posts')->where('id', 1)->get();

DB::table('posts')->whereId(1)0>get();

DB::table('posts')->where(function ($query) {$query->where('id', 1);})->get();


count()

distinct()

select(DB::raw('count(*) as cnt'))

join(),

union(),

whereNull(),

whereNotNull(),

having(),

groupBy()


find($id) : id를 취해 단일 모델을 반환한다. 일치하는 모델이 없으면 null을 반환

findOrFail($id) : id를 취해 단일 도델을 반환한다. 일치하는 모델이 없으면 오류를 발생한다.

first() : 데이터베이스에서 찾은 첫 번째 레코드를 반환한다. 일치하는 모델이 없으면 null을 반환

firstOrFail() : 데이터베이스에서 찾은 첫 번째 레코드를 반환. 일치하는 모델이 없으면 오류를 반환

get() : 쿼리와 일치하는 모델의 컬렉션을 반환

pluck($column) :주어진 열에 있는 값의 모음만 반환

toArray() : 모델/컬렉션을 간단한 php 배열로 변환


▶Route

-미들웨어 설정 로그인한 유저만 접속가능

Route::get('about', function(){ return view('about')->middleware('auth');


-라우터에 name값을 설정하면 Route('home') 접속가능

Route::get('/home' , 'HomeController@index')->name('home');


▶ controller

public function __construct()

{

$this->middleware('auth');  //이 컨트롤러는 회원만 접속가능

}


-매직 상수 

__METHOD__


-현재 주소를 반환한다.

return $request->path();


-리퀘스트요청을 모두 반환한다.

return request()->all()

dd(request())->all();


-데이터 삽입 input에서 넘어온 값

Task::create([

'title' => $request->input('title'),

'body' => $request->input('body')

]);

return redirect('tasks');


-JSON 출력

return response()->json($task,

         200, [], JSON_PRETTY_PRINT);


-해당소스를 추가하면 User모델을 사용할 수 있다. 

use App\User


▶model

-마이그레이션의 파일 이름은 스네이크 표기법사용 add_last_login_column_on_users_table


-리소스컨트롤러+모델만들기

php artisan make:controller PostsController -r -m Post


-컬럼을 지웠다 다시 시딩한다.

php artisan migrate:refresh --seed


-컬럼만 지웠다 다시 실행

php artisan migrate:refresh


-개별적 시딩하기

php artisan db:seed --class=UsersTableSeeder


-모델에 테이블 지정

protected $table = 'users';


-대량할당 지정

protected $fillable = ['title', 'body'];


-대량할당 예외처리

protected $guarded = ['title'];


-조회 쿼리에서 제외할 열 설정

protected $hidden = ['password', 'remeber_token'];


-타임스탬프 사용안하기

public $timestamps = false;


▶view ,Blade Tample

마스터 레이아웃 : @extends('master')

컨텐츠내용 : @section('content')

반복문 : @foreach @endforeach

조각뷰 삽입:  @include('partials.footer')


@if ( $itemCount = count($items))

<p> {{ $itemCount }} 종류의 과일이 있음</p>

@else

<p>아무것도 없음</p>

@endif


-에러가 있으면 출력

@error('title') border border-red-700 @enderror

----------------------------------------------------

@error('title')

<small>{{ $message }} </small>

@enderror

----------------------------------------------------

@if($errors->any())

{{ $errors }}

@endif

----------------------------------------------------

@auth

{{ 회원이면 보여줘 }}

@else

{{ 아니면 보여줘 }}

@endauth

----------------------------------------------------

@guest

{{ 게스트면 보여줘 }}

@else

{{ 회원이면 보여줘}}

@endguest

----------------------------------------------------

세션 정보가 있으면 출력

@if (session('status'))

<div class="alert alert-success" role="alert">

{{ session('status' }}

</div>

@endif



--해당 변수가 있으면 출력하고 없으면 Hello출력

{{ $greeting or 'Hello' }} {{ $name or '' }}







+ Recent posts