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']) 

就解決了

 

 

 
arrow
arrow
    全站熱搜

    學習程式 發表在 痞客邦 留言(0) 人氣()