▶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 '' }}
'라라벨' 카테고리의 다른 글
laravel reset password min:6 라라벨 패스워드리셋 6자리 (0) | 2019.09.05 |
---|---|
라라벨 메일건 mailgun 설정방법 비밀번호 재설정 (0) | 2019.09.03 |
presets 라라벨 프론트엔드 프리셋 (0) | 2019.08.24 |
Laraval5.8 유튜브 동영상 강좌 (0) | 2019.08.07 |
테이블명을 모델명으로 전환시켜주는 팅커콘솔 명령어 (0) | 2019.07.15 |