laravel筆記


向視圖中傳遞變量

使用with()方法

return view('articles.lists')->with('title',$title);

直接給view()傳參數

return view('articles.lists',['title'=>$title]);

使用compact

return view('articles.lists',compact('title','intro'));

使用Migration

php artisan make:migration create_articles_table --create='articles'

php artisan migrate:rollback

 

php artisan migrate

 

時間處理庫Carbon

$article->published_at = Carbon\Carbon::now();

 

.env中我們設置了APP_DEBUG=true

404頁面,在resources/views/errors/文件夾下創建一個404.blade.php

 

使用illuminate/html

 安裝

1、composer require illuminate/html

2、提供Service Provider和指定Facade

Request表單驗證

1、php artisan make:request StoreArticleRequest 這個命令生成的文件位於app/Http/Requests/

 

2、會有兩個方法:authorize()和 rules() 。

authorize()可以這樣簡單地理解:我們在處理這個表單請求(通常是一個post請求)的時候是否是需要進行身份驗證,這種驗證是指:比如A發表的評論,B能不能進行編輯。如果不能,則保留返回false,如果可以,則修改返回true。那么我們這里的邏輯是:既然是發表文章,在我們這個站點注冊的用戶(如果開放注冊的話)都是可以發表文章的,所以我們首先修改authorize()方法,將其返回值改為:return true;

然后對於rules()方法,我們需要在這里設置我們的驗證規則,比如我們可以設置下面這個的驗證規則:

 

3、將整個StoreArticleRequest類的實例以$request變量傳入store()方法

 

如果你不想錯誤信息為英文,可以到resources/lang/en/validation.php修改,或者你直接創建一個新的語言文件包。

使用Validation

$validator = Validator::make($input, [ 'title' => 'required|min:3', 'body' => 'required', ]);

if ($validator->fails()) { }

 

setAttribute

1、在Article.php中添加下面的方法:

public function setPublishedAtAttribute($date) { $this->attributes['published_at'] = Carbon::createFromFormat('Y-m-d',$date); }

這里注意這個寫法set+字段名+Attribute,還有的就是使用駝峰法。比如你要加密密碼的時候可以這樣:

public function setPasswordAttribute($passowrd) { $this->attributes['password'] = Hash::make($passowrd); //僅僅是舉例 }
這里將published_at字段作為Carbon對象來處理,注意在文件頭部使用use Carbon\Carbon;來引入Carbon。

Article.php添加一行代碼使published_at作為Carbon對象來處理:

protected $dates = ['published_at'];

queryScope

1、
$articles = Article::where('published_at','<=',Carbon::now())->latest()->get();
$articles = Article::latest()->published()->get();

2、在我們的Article.php中增加下面的方法:

public function scopePublished($query) { $query->where('published_at','<=',Carbon::now()); } 

這里注意一下寫法scope+自定義的方法名字,還有就是一如既往的駝峰法。

關聯表
 public function up()
    {
        Schema::create('article_tag', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('article_id')->unsigned()->index();
            $table->foreign('article_id')->references('id')->on('articles')->onDelete('cascade');
            $table->integer('tag_id')->unsigned()->index();
            $table->foreign('tag_id')->references('id')->on('tags')->onDelete('cascade');
            $table->timestamps();
        });
    }

foreign():外鍵 references():參照字段 on():參照表 onDelete():刪除時的執行動作 這里 cascade 是跟着刪除,比如刪除了某篇文章,我們將article_tag中包含article_id一樣的記錄也刪除

getAttribute

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM