Laravel中一些要记住 的写法
生活随笔
收集整理的這篇文章主要介紹了
Laravel中一些要记住 的写法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Laravel中一些要記住 的寫法
//模板中Laravel 的模型訪問器會自動把下劃線改為駝峰,所以?image_url?對應的就是?getImageUrlAttribute
<div class="img"><img src="{{ $product->image_url }}" alt=""></div>
模型篇:
1.根據數據庫部分URL返回完整的URL
public function getImageUrlAttribute(){// 如果 image 字段本身就已經是完整的 url 就直接返回if (Str::startsWith($this->attributes['image'], ['http://', 'https://'])) {return $this->attributes['image'];}return \Storage::disk('public')->url($this->attributes['image']);}//模板中Laravel 的模型訪問器會自動把下劃線改為駝峰,所以?image_url?對應的就是?getImageUrlAttribute
<div class="img"><img src="{{ $product->image_url }}" alt=""></div>
?控制器:
1.條件查詢與搜索
public function index(Request $request){// 創建一個查詢構造器$builder = Product::query()->where('on_sale', true);// 判斷是否有提交 search 參數,如果有就賦值給 $search 變量// search 參數用來模糊搜索商品if ($search = $request->input('search', '')) {$like = '%'.$search.'%';// 模糊搜索商品標題、商品詳情、SKU 標題、SKU描述$builder->where(function ($query) use ($like) {$query->where('title', 'like', $like)->orWhere('description', 'like', $like)->orWhereHas('skus', function ($query) use ($like) {$query->where('title', 'like', $like)->orWhere('description', 'like', $like);});});}// 是否有提交 order 參數,如果有就賦值給 $order 變量// order 參數用來控制商品的排序規則if ($order = $request->input('order', '')) {// 是否是以 _asc 或者 _desc 結尾if (preg_match('/^(.+)_(asc|desc)$/', $order, $m)) {// 如果字符串的開頭是這 3 個字符串之一,說明是一個合法的排序值if (in_array($m[1], ['price', 'sold_count', 'rating'])) {// 根據傳入的排序值來構造排序參數$builder->orderBy($m[1], $m[2]);}}}$products = $builder->paginate(16);2.查出某個字段,對結果轉為布爾類型,場景如某人是否收藏過此產品
$favored = false; if($user = $request->user()){$favored = boolval($user->favoriteProducts()->find($product->id)); //再傳進模板里?
?HTML篇
1.form表單可以直提交成get形式.
2.?分頁后查詢的input內容丟失,可將參數加進paginate?如
<div class="float-right">{{ $products->appends($filters)->render() }}</div>3.下拉式查詢?
<form action="{{ route('products.index') }}" class="search-form"><div class="form-row"><div class="col-md-9"><div class="form-row"><div class="col-auto"><input type="text" class="form-control form-control-sm" name="search" placeholder="搜索"></div><div class="col-auto"><button class="btn btn-primary btn-sm">搜索</button></div></div></div><div class="col-md-3"><select name="order" class="form-control form-control-sm float-right"><option value="">排序方式</option><option value="price_asc">價格從低到高</option><option value="price_desc">價格從高到低</option><option value="sold_count_desc">銷量從高到低</option><option value="sold_count_asc">銷量從低到高</option><option value="rating_desc">評價從高到低</option><option value="rating_asc">評價從低到高</option></select></div></div></form>?
$('.search-form select[name=order]').on('change',function(){$('.search-form').submit();})?
posted on 2019-05-09 13:55 greatbing 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/bing2017/p/10838047.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Laravel中一些要记住 的写法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringMVC基础配置及使用
- 下一篇: 第十一周编程总结