1.href="{{public_path() }}" 取得真實public 所在位置
2.group as下又有group as
Route::group(['prefix'=>'blog'],function(){
Route::group(['as'=>'myblog::'],function(){
Route::get('/myblog',['as'=>'article-list',function () {
return view('blog.article-list');
}] );
Route::get('/myblog/article', function () {
return view('blog.article');
});
});
Route::get('/latest-article', function () {
return view('blog.latest-article');
})->name('latest-article');
});
//改成controller
Route::get('/{user}','BlogController@getBlog',['as'=>'article-list',
] );
Route::get('/{user}','BlogController@getBlog',)name('article-list');
3.客製化驗證訊息
$this->validate($request,[],['email.required'=>'填寫email'])
4.返回帶訊息
return redirect()->back()->withErrors(['帳號密碼錯誤'])->withInput($rq->all());
5.ip
$request->ip()
:
6.timestamp 取消
public $timestamps = false;
7.
laravel factory 中關聯
factory(App\User::class,15)->create()->each(
function($u){
$u->userinfo()->save(factory(App\UserInfo::class)->make());
}
);
8.關聯存取
$comment = new App\Comment(['message' => 'A new comment.']);
$post = App\Post::find(1);
$post->comments()->save($comment);
9.用laravel
因為blade會找不到$blog->blog-title
所以資料庫最好這樣存blog_title
10.
來訪加一
要用DB提供的方法
$useraccount=User::where('account',$user)->first();
$avatar=$useraccount->avatar;
DB::table('blog')->where('user_id',$useraccount->id)->increment('visited_count');
11.Image按比例
shayne.ankunding
Image::make($avatar)->resize(70,null, function ($constraint) {
$constraint->aspectRatio();
})->save( public_path('/user/avatars/'.$filename ));
12.blade用format created_at
<span class="post-time">{{$article->created_at->format('g:i A')}}</span>
13.
orderby coloumn 在 pivot
public function visitersOfMine(){
return $this->belongsToMany('App\User','visit','user_id','visiter_id')->withPivot('created_at');
}
public function getlatest(){
return $this->visitersOfMine()->orderBy('pivot_created_at','desc')->get();
}
* pivot_created_at 是樞紐新增的名字
14.
MYSQL 取最新不重覆的資料
SELECT
visit.visiter_id, visit.user_id ,max(visit.created_at) as date
FROM
visit Group BY visit.visiter_id ORDER BY date DESC
15.
laravel取最新不重覆
return $this->visitersOfMine()->orderBy('pivot_created_at','desc')->get()->unique();
16.操作collection
$jobs = Job::search();
$countries = $jobs->get()->map(function( $job ) {
return $job->country;
});
17.
如果包含 html 或是 js 碼會直接顯示
{!!$content!!}
18.
laravel cookie
if(!Cookie::has('visited'.$user.'blog')){
DB::table('blog')->where('user_id',$user_id)->increment('visited_count');
Cookie::queue('visited'.$user.'blog', 'shit', 720);
}
1 |
// 使用 Cookie::make 並設定時間 |
2 |
$cookie = Cookie::make( 'name' , 'Johnson' , $minutes ); |
3 |
4 |
// Forever |
5 |
$cookie = Cookie::forever( 'name' , 'Johnson' ); |
6 |
7 |
// 使用 make 或 forever 產生的 Cookie 必須自行Attaching,這樣才算設定完成。 |
8 |
// return Response::make('Hello World')->withCookie($cookie); |
9 |
return Redirect::to( 'test2' )->withCookie( $cookie ); |
另一種做法,使用 queue 就不需要 Attaching
1 |
Cookie::queue( 'name' , 'Johnson' , $minutes ); |
2 |
return Redirect::to( 'test2' ) |
////////////////////////
if(!Cookie::has(md5('visited'.$user.'blog'))){
DB::table('blog')->where('user_id',$user_id)->increment('visited_count');
Cookie::queue(md5('visited'.$user.'blog'), 'shit', 720)
19.factory 多對多
$user_article=$u->blog_article()->save(factory(App\BlogArticle::class)->make());
$user_article->replies()->save(factory(App\BlogArticleReply::class)->make());
20.factory 關聯
public function run()
{
// $this->call(UsersTableSeeder::class);
factory(App\User::class,15)->create()->each(
function($u){
$u->userinfo()->save(factory(App\UserInfo::class)->make());
$u->blog()->save(factory(App\Blog::class)->make());
for($i=1 ; $i<10;$i++){
// $u->blog_article()->save(factory(App\BlogArticle::class)->make());
$u->blog_article()->save(factory(App\BlogArticle::class)->make());
}
$user_article=$u->blog_article()->save(factory(App\BlogArticle::class)->make());
$user_article->replies()->save(factory(App\BlogArticleReply::class)->make());
}
);
}
20.
用sleep(1);
避免資料相同時間
用uniqid亂數取網址才不會取出時造成錯誤
seed時才會正常
21.
選今日最高人氣
方式1.記錄每筆誰來看過
缺點:浪費資源 也要一直寫入資料庫
用watch ++
然後再加個判斷欄位 boolean 記錄是否登過版面
$faker->unique()->randomNumber用在website
21.查關聯到的表條件時wih這樣用
return User::with(['post' => function (HasOne $query) { $query->where('id', '<', '6'); }]) ->where('id', '>', 2) ->get(); }
22.
DB::table('discuss_article_tags')->insert(
array(array('user_id'=>'Coder 1', 'subject_id'=> 4096), array('user_id'=>'Coder 2', 'subject_id'=> 2048),
)
在migration插入預設的記錄
23.
查有 (交易類別)的文章
$tag->article()->get
讓pivot表紀錄創造時有created_at 和updated_at
在模型的關聯方法最後加
->withTimestamps()
24.巢狀關聯
GalleryArticle::with(['user','ownReply'])
在blade時會查
$articles->ownReply as $reply
每個留言要取用戶user
要$reply->user
會有n+1筆 Reply資料
要用 GalleryArticle::with(['user','ownReply.user'])
就解決了