laravel-create-build-learn v0.0.6
##Laravel Install ##Import db ##Set Variable .env
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_banhang
DB_USERNAME=root
DB_PASSWORD=
##SET Time config/app.php
'timezone' => 'Asia/Ho_Chi_Minh',
##Create Model app/NameModels.php
php artisan make:model Customer
php artisan make:model Build
php artisan make:model BuildDetail
php artisan make:model Products
php artisan make:model ProductsType
php artisan make:model News
php artisan make:model Slide
##Quan He 1 Nhieu
(Se co nhieu sp) <-- (1 Chi tiet hoa don) bill_detail - bill - customer
products : (Se co nhieu sp) <-- (1 loai sp) type_products
users - news - slide
/*app/ProducsType.php*/
class ProductsType extends Model
{
//
protected $table = "type_products";
// mot_loai_sanpham se co nhieu sanpham: $this->hasMany('/*duong dan den models sanpham*/','/*Khoa Ngoai Chung*/','/*Khoa Chinh type_products*/')
public function product()
{
# code...
return $this->hasMany('App\Products','id_type','id');
}
}
//
/*app/Slide.php*/
//...
protected $table = "slide";
/*app/Products.php*/
//...
protected $table = "products";
//mot sanpham thuoc mot_loai_sanpham: $this->belongsTo('/*duong dan den models loai sanpham*/','/*Khoa Ngoai Chung*/','/*Khoa Chinh products*/');
public function product_type()
{
# code...
return $this->belongsTo('App\ProductsType','id_type','id');
}
//mot sanpham co nhieu hoa_don: $this->hasMany('/*duong dan den models hoadon*/','/*Khoa Ngoai Chung*/','/*Khoa Chinh products*/')
public function bill_detail()
{
# code...
return $this->hasMany('App\BillDetail','id_product','id');
//ve viet tiep : PHP Laravel 5x - Website bán hàng Bài 3: Tạo Model 9:03
}
//...
protected $table = "bill_detail";
public function product()
{
# code...
return $this->belongsTo('App\Products','id_product','id');
}
public function bill()
{
# code...
return $this->belongsTo('App\Bill','id_bill','id');
//ve viet tiep : PHP Laravel 5x - Website bán hàng Bài 3: Tạo Model 9:03
}
//...
protected $table = "bills";
public function bill_detail()
{
# code...
return $this->hasMany('App\BillDetail','id_bill','id');
//ve viet tiep : PHP Laravel 5x - Website bán hàng Bài 3: Tạo Model 9:03
public function customer()
{
# code...
return $this->belongsTo('App\Customer','id_customer','id');
}
//...
protected $table = "customer";
public function bill()
{
# code...
return $this->hasMany('App\Bill','id_customer','id');
//ve viet tiep : PHP Laravel 5x - Website bán hàng Bài 3: Tạo Model 9:03
}
##Extract copy source/* to public/ Download Source ##create master.blade.php to resource/views
//copy code public/index.html to here
##create PageController.php
php artisan make:controller PageController
##routes/web
Route::get('/index', [
'as'=>'trangchu',
'uses'=>'PageController@getIndex'
]);
##app/Http/Controllers/PageController.php
public function getIndex()
{
# code...
return view('master');
}
##cat giao dien ##resource/views/master.blade.php
<!-- copy header and footer -->
<!-- cuter slide and container paste to trangchu.blade.php -->
Replace >> slide and container << = @yield('content')
>>
<div class="fullwidthbanner-container">
................................
</div>
<!--slider-->
</div>
<div class="container">
................................
<<
##resource/views/page/trangchu.blade.php
@extends('master')
@section('content')
<div class="fullwidthbanner-container">
.................................
</div>
<!--slider-->
</div>
<div class="container">
.................................
@endsection
##app/Http/Controllers/PageController.php
public function getIndex()
{
# code...
return view('page.trangchu');
}
##Chia nho master > cuter ... ... > resource/views/master.blade.php ##Create header and paste to > resource/views/header.blade.php ##Create footer and paste to > resource/views/footer.blade.php
Cutter master paste to header
replace it = @include('header')
>>>
<div id="header">
......................................
</div> <!-- #header -->
<<<
Cutter master paste to footer
replace it = @include('footer')
>>>
<div id="footer" class="color-div">
......................................
</div> <!-- #footer -->
<div class="copyright">
......................................
</div> <!-- .copyright -->
<<<
##Cat giao dien voi cac site con lai
##Lay du lieu db va show index ##App\Http\Controllers\PageController.php
use App\Slide;
public function getIndex()
{
# code...
$slide = Slide::all(); //get all db on table slide in Model: App\Slide.php
//
// return view('page.trangchu',['slide'=>$slide]);
return view('page.trangchu',compact('slide'));
}
##resource/views/page/trangchu.blade.php
<ul>
@foreach($slide as $sl)
<!-- THE FIRST SLIDE -->
<li data-transition="boxfade" data-slotamount="20" class="active-revslide" style="width: 100%; height: 100%; overflow: hidden; z-index: 18; visibility: hidden; opacity: 0;">
<div class="slotholder" style="width:100%;height:100%;" data-duration="undefined" data-zoomstart="undefined" data-zoomend="undefined" data-rotationstart="undefined" data-rotationend="undefined" data-ease="undefined" data-bgpositionend="undefined" data-bgposition="undefined" data-kenburns="undefined" data-easeme="undefined" data-bgfit="undefined" data-bgfitend="undefined" data-owidth="undefined" data-oheight="undefined">
<div class="tp-bgimg defaultimg" data-lazyload="undefined" data-bgfit="cover" data-bgposition="center center" data-bgrepeat="no-repeat" data-lazydone="undefined" src="image/slide/{{$sl->image}}" data-src="image/slide/{{$sl->image}}" style="background-color: rgba(0, 0, 0, 0); background-repeat: no-repeat; background-image: url('image/slide/{{$sl->image}}'); background-size: cover; background-position: center center; width: 100%; height: 100%; opacity: 1; visibility: inherit;">
</div>
</div>
<!-- <li> delete Second slide and more </li> -->
</li>
@endforeach
</ul>
##Lay du lieu db va show index p2 ##App\Http\Controllers\PageController.php
use App\Products;
public function getIndex()
{
# code...
//...
$new_products = Products::where('new',1)->get();
// return view('page.trangchu',['slide'=>$slide]);
return view('page.trangchu',compact('slide','new_products'));
}
##resource/views/page/trangchu.blade.php
<div class="row">
@foreach($new_products as $new)
<div class="col-sm-3">
<div class="single-item">
@if($new->promotion_price==!0)
<div class="ribbon-wrapper"><div class="ribbon sale">Sale</div></div>
@endif
<div class="single-item-header">
<a href="product.html"><img style="width: 270px;height: 320px;" src="image/product/{{$new->image}}" alt=""></a>
</div>
<div class="single-item-body">
<p class="single-item-title">{{$new->name}}</p>
<p class="single-item-price">
@if($new->promotion_price==0)
<span class="flash-sale">${{$new->unit_price}}</span>
@else
<span class="flash-del">${{$new->unit_price}}</span>
<span class="flash-sale">${{$new->promotion_price}}</span>
@endif
</p>
</div>
<div class="single-item-caption">
<a class="add-to-cart pull-left" href="shopping_cart.html"><i class="fa fa-shopping-cart"></i></a>
<a class="beta-btn primary" href="product.html">Details <i class="fa fa-chevron-right"></i></a>
<div class="clearfix"></div>
</div>
</div>
</div>
@endforeach
</div>
##Lay du lieu db va show index p3 ##App\Http\Controllers\PageController.php
// $new_products = Products::where('new',1)->get();
$new_products = Products::where('new',1)->paginate(8);
##resource/views/page/trangchu.blade.php
<div class="row">
@foreach($new_products as $new)
..............................
@endforeach
</div>
<div class="row">{{$new_products->links()}}</div>