Laravel Cheat 表 http://cheats.jesse-obrien.ca/#
Artisan
php artisan --help OR -h php artisan --quiet OR -q php artisan --version OR -V php artisan --no-interaction OR -n php artisan --ansi php artisan --no-ansi php artisan --env // -v|vv|vvv Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debugphp artisan --verbose php artisan changes php artisan clear-compiled php artisan down php artisan dump-autoload php artisan env php artisan help php artisan list php artisan migrate php artisan optimize php artisan routes php artisan serve php artisan tinker php artisan up php artisan workbench php artisan asset:publish [--bench[="vendor/package"]][--path[="..."]][package] php artisan auth:reminders-table php artisan cache:clear php artisan command:make name [--command[="..."]][--path[="..."]][--namespace[="..."]] php artisan config:publish php artisan controller:make [--bench="vendor/package"] php artisan db:seed [--class[="..."]][--database[="..."]] php artisan key:generate php artisan migrate [--bench="vendor/package"][--database[="..."]][--path[="..."]][--package[="..."]][--pretend][--seed] php artisan migrate:install [--database[="..."]] php artisan migrate:make name [--bench="vendor/package"][--create][--package[="..."]][--path[="..."]][--table[="..."]] php artisan migrate:refresh [--database[="..."]][--seed] php artisan migrate:reset [--database[="..."]][--pretend] php artisan migrate:rollback [--database[="..."]][--pretend] php artisan queue:listen [--queue[="..."]][--delay[="..."]][--memory[="..."]][--timeout[="..."]][connection] php artisan queue:subscribe [--type[="..."]] queue url php artisan queue:work [--queue[="..."]][--delay[="..."]][--memory[="..."]][--sleep][connection] php artisan session:table php artisan view:publish [--path[="..."]]package php artisan tail [--path[="..."]][--lines[="..."]][connection]
Composer
composer create-project laravel/laravel folder_name composer install composer update composer dump-autoload [--optimize] composer self-update
Routing
Route::get('foo',function(){});Route::get('foo','ControllerName@function');Route::controller('foo','FooController');
Triggering Errors
App::abort(404);App::missing(function($exception){});thrownewNotFoundHttpException;
Route Parameters
Route::get('foo/{bar}',function($bar){});Route::get('foo/{bar?}',function($bar ='bar'){});
HTTP Verbs
Route::any('foo',function(){});Route::post('foo',function(){});Route::put('foo',function(){});Route::patch('foo',function(){});Route::delete('foo',function(){});// RESTful actionsRoute::resource('foo','FooController');
Secure Routes
Route::get('foo', array('https',function(){}));
Route Constraints
Route::get('foo/{bar}',function($bar){})->where('bar','[0-9]+');Route::get('foo/{bar}/{baz}',function($bar, $baz){})->where(array('bar'=>'[0-9]+','baz'=>'[A-Za-z]'))
Filters
// Declare an auth filterRoute::filter('auth',function(){});// Register a class as a filterRoute::filter('foo','FooFilter');Route::get('foo', array('before'=>'auth',function(){}));// Routes in this group are guarded by the 'auth' filterRoute::get('foo', array('before'=>'auth',function(){}));Route::group(array('before'=>'auth'),function(){});// Pattern filterRoute::when('foo/*','foo');// HTTP verb patternRoute::when('foo/*','foo', array('post'));
Named Routes
Route::currentRouteName();Route::get('foo/bar', array('as'=>'foobar',function(){}));
Route Prefixing
// This route group will carry the prefix 'foo'Route::group(array('prefix'=>'foo'),function(){})
Sub-Domain Routing
// {sub} will be passed to the closureRoute::group(array('domain'=>'{sub}.example.com'),function(){});
URLs
URL::full(); URL::current(); URL::previous(); URL::to('foo/bar', $parameters, $secure); URL::action('FooController@method', $parameters, $absolute); URL::route('foo', $parameters, $absolute); URL::secure('foo/bar', $parameters); URL::asset('css/foo.css', $secure); URL::secureAsset('css/foo.css'); URL::isValidUrl('http://example.com'); URL::getRequest(); URL::setRequest($request); URL::getGenerator(); URL::setGenerator($generator);
Events
Event::fire('foo.bar', array($bar));Event::listen('foo.bar',function($bar){});Event::listen('foo.*',function($bar){});Event::listen('foo.bar','FooHandler',10);Event::listen('foo.bar','BarHandler',5);Event::listen('foor.bar',function($event){returnfalse;});Event::queue('foo', array($bar));Event::flusher('foo',function($bar){});Event::flush('foo');Event::forget('foo');Event::subscribe(newFooEventHandler);
Database
DB::connection('connection_name'); DB::statement('drop table users'); DB::listen(function($sql, $bindings, $time){ code_here;}); DB::transaction(function(){ transaction_code_here;});// Cache a query for $time minutesDB::table('users')->remember($time)->get();// Escape raw inputDB::raw('sql expression here');
Selects
DB::table('name')->get(); DB::table('name')->distinct()->get(); DB::table('name')->select('column as column_alias')->get(); DB::table('name')->where('name','=','John')->get(); DB::table('name')->whereBetween('column', array(1,100))->get(); DB::table('name')->whereIn('column', array(1,2,3))->get(); DB::table('name')->whereNotIn('column', array(1,2,3))->get(); DB::table('name')->whereNull('column')->get(); DB::table('name')->whereNotNull('column')->get(); DB::table('name')->groupBy('column')->get(); DB::table('name')->orderBy('column')->get(); DB::table('name')->having('count','>',100)->get(); DB::table('name')->skip(10)->take(5)->get(); DB::table('name')->first(); DB::table('name')->pluck('column'); DB::table('name')->lists('column');// JoinsDB::table('name')->join('table','name.id','=','table.id')->select('name.id','table.email');
Inserts, Updates, Deletes
DB::table('name')->insert(array('name'=>'John','email'=>'john@example.com')); DB::table('name')->insertGetId(array('name'=>'John','email'=>'john@example.com'));// Batch insertDB::table('name')->insert( array('name'=>'John','email'=>'john@example.com') array('name'=>'James','email'=>'james@example.com'));// Update an entryDB::table('name')->where('name','=','John')->update(array('email'=>'john@example2.com'));// Delete everything from a tableDB::table('name')->delete();// Delete specific recordsDB::table('name')->where('id','>','10')->delete(); DB::table('name')->truncate();
Aggregates
DB::table('name')->count(); DB::table('name')->max('column'); DB::table('name')->min('column'); DB::table('name')->avg('column'); DB::table('name')->sum('column'); DB::table('name')->increment('column'); DB::table('name')->increment('column', $amount); DB::table('name')->decrement('column'); DB::table('name')->decrement('column', $amount);
Raw Expressions
DB::select('select * from users where id = ?', array('value')); DB::table('name')->select(DB::raw('count(*) as count, column2'))->get();
Eloquent
Model::create(array('key'=>'value'));// Fill a model with an array of attributes, beware of mass assignment!Model::fill($attributes);Model::destroy(1);Model::all();Model::find(1);// Find using dual primary keyModel::find(array('first','last'));// Throw an exception if the lookup failsModel::findOrFail(1);// Find using dual primary key and throw exception if the lookup failsModel::findOrFail(array('first','last'));Model::where('foo','=','bar')->get();Model::where('foo','=','bar')->first();// Throw an exception if the lookup failsModel::where('foo','=','bar')->firstOrFail();Model::where('foo','=','bar')->count();Model::where('foo','=','bar')->delete();Model::whereRaw('foo = bar and cars = 2', array(20))->get();Model::remember(5)->get();Model::remember(5,'cache-key-name')->get();Model::on('connection-name')->find(1);Model::with('relation')->get();Model::all()->take(10);Model::all()->skip(10);
Soft Delete
Model::withTrashed()->where('cars',2)->get();Model::withTrashed()->where('cars',2)->restore();Model::where('cars',2)->forceDelete();Model::onlyTrashed()->where('cars',2)->get();
Events
Model::creating(function($model){});Model::created(function($model){});Model::updating(function($model){});Model::updated(function($model){});Model::saving(function($model){});Model::saved(function($model){});Model::deleting(function($model){});Model::deleted(function($model){});Model::observe(newFooObserver);
Eloquent Configuration
Eloquent::unguard();// Disables mass assignment exceptions from being thrown from model inserts and updatesEloquent::reguard();// Renables any ability to throw mass assignment exceptions
The Remote Component
Executing Commands
SSH::run(array $commands); SSH::into($remote)->run(array $commands);// specify remote, otherwise assumes default SSH::run(array $commands,function($line){ echo $line.PHP_EOL;});
Tasks
SSH::define($taskName, array $commands);// define SSH::task($taskName,function($line)// execute{ echo $line.PHP_EOL;});
SFTP Uploads
SSH::put($localFile, $remotePath); SSH::putString($string, $remotePath);
Schema
Schema::create('table',function($table){ $table->increments('id');});// Specify a ConnectionSchema::connection('foo')->create('table',function($table){});Schema::rename($from, $to);Schema::drop('table');Schema::dropIfExists('table');Schema::hasTable('table');Schema::hasColumn('table','column');// Update an existing tableSchema::table('table',function($table){}); $table->renameColumn('from','to'); $table->dropColumn(string|array); $table->engine ='InnoDB';// Only work on MySQL$table->string('name')->after('email');
Indexes
$table->string('column')->unique(); $table->primary('column');// Creates a dual primary key$table->primary(array('first','last')); $table->unique('column'); $table->unique('column','key_name');// Creates a dual unique index$table->unique(array('first','last')); $table->unique(array('first','last'),'key_name'); $table->index('column'); $table->index('column','key_name');// Creates a dual index$table->index(array('first','last')); $table->index(array('first','last'),'key_name'); $table->dropPrimary('table_column_primary'); $table->dropUnique('table_column_unique'); $table->dropIndex('table_column_index');
Foreign Keys
$table->foreign('user_id')->references('id')->on('users'); $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); $table->dropForeign('posts_user_id_foreign');
Column Types
$table->increments('id'); $table->bigIncrements('id'); $table->string('email'); $table->string('name',100); $table->integer('votes'); $table->bigInteger('votes'); $table->smallInteger('votes'); $table->float('amount'); $table->double('column',15,8); $table->decimal('amount',5,2); $table->boolean('confirmed'); $table->date('created_at'); $table->dateTime('created_at'); $table->time('sunrise'); $table->timestamp('added_on'); $table->timestamps(); $table->softDeletes(); $table->text('description'); $table->binary('data'); $table->enum('choices', array('foo','bar')); $table->morphs('parent');// Adds INTEGER parent_id and STRING parent_type->nullable()->default($value)->unsigned()
Input
Input::get('key');// Default if the key is missingInput::get('key','default');Input::has('key');Input::all();// Only retrieve 'foo' and 'bar' when getting inputInput::only('foo','bar');// Disregard 'foo' when getting inputInput::except('foo');
Session Input (flash)
// Flash input to the sessionInput::flash();Input::flashOnly('foo','bar');Input::flashExcept('foo','baz');Input::old('key','default_value');
Files
// Use a file that's been uploadedInput::file('filename');// Determine if a file was uploadedInput::hasFile('filename');// Access file propertiesInput::file('name')->getRealPath();Input::file('name')->getClientOriginalName();Input::file('name')->getClientOriginalExtension();Input::file('name')->getSize();Input::file('name')->getMimeType();// Move an uploaded fileInput::file('name')->move($destinationPath);// Move an uploaded fileInput::file('name')->move($destinationPath, $fileName);
Cache
Cache::put('key','value', $minutes);Cache::add('key','value', $minutes);Cache::forever('key','value');Cache::remember('key', $minutes,function(){return'value'});Cache::rememberForever('key',function(){return'value'});Cache::forget('key');Cache::has('key');Cache::get('key');Cache::get('key','default');Cache::get('key',function(){return'default';});Cache::increment('key');Cache::increment('key', $amount);Cache::decrement('key');Cache::decrement('key', $amount);Cache::section('group')->put('key', $value);Cache::section('group')->get('key');Cache::section('group')->flush();
Cookies
Cookie::get('key');// Create a cookie that lasts for everCookie::forever('key','value');// Set a cookie before a response has been createdCookie::queue('key','value','minutes');// Send a cookie with a response$response =Response::make('Hello World'); $response->withCookie(Cookie::make('name','value', $minutes));
Sessions
Session::get('key');Session::get('key','default');Session::get('key',function(){return'default';});Session::put('key','value');Session::all();Session::has('key');Session::forget('key');Session::flush();Session::regenerate();Session::flash('key','value');Session::reflash();Session::keep(array('key1','key2'));
Requests
Request::path();Request::is('foo/*');Request::url();Request::segment(1);Request::header('Content-Type');Request::server('PATH_INFO');Request::ajax();Request::secure();
Responses
returnResponse::make($contents);returnResponse::make($contents,200);returnResponse::json(array('key'=>'value'));returnResponse::json(array('key'=>'value'))->setCallback(Input::get('callback'));returnResponse::download($filepath);returnResponse::download($filepath, $filename, $headers);// Create a response and modify a header value$response =Response::make($contents,200); $response->header('Content-Type','application/json');return $response;// Attach a cookie to a responsereturnResponse::make($content)->withCookie(Cookie::make('key','value'));
Redirects
returnRedirect::to('foo/bar');returnRedirect::to('foo/bar')->with('key','value');returnRedirect::to('foo/bar')->withInput(Input::get());returnRedirect::to('foo/bar')->withInput(Input::except('password'));returnRedirect::to('foo/bar')->withErrors($validator);returnRedirect::back();returnRedirect::route('foobar');returnRedirect::route('foobar', array('value'));returnRedirect::route('foobar', array('key'=>'value'));returnRedirect::action('FooController@index');returnRedirect::action('FooController@baz', array('value'));returnRedirect::action('FooController@baz', array('key'=>'value'));// If intended redirect is not defined, defaults to foo/bar.returnRedirect::intended('foo/bar');
IoC
App::bind('foo',function($app){returnnewFoo;});App::make('foo');// If this class exists, it's returnedApp::make('FooBar');App::singleton('foo',function(){returnnewFoo;});App::instance('foo',newFoo);App::bind('FooRepositoryInterface','BarRepository');App::register('FooServiceProvider');// Listen for object resolutionApp::resolving(function($object){});
Security
Passwords
Hash::make('secretpassword');Hash::check('secretpassword', $hashedPassword);Hash::needsRehash($hashedPassword);
Auth
// Check if the user is logged inAuth::check();Auth::user();Auth::attempt(array('email'=> $email,'password'=> $password));// 'Remember me' by passing true to Auth::attempt()Auth::attempt($credentials,true);// Log in for a single requestAuth::once($credentials);Auth::login(User::find(1));Auth::loginUsingId(1);Auth::logout();Auth::validate($credentials);Auth::basic('username');Auth::onceBasic();Password::remind($credentials,function($message, $user){});
Encryption
Crypt::encrypt('secretstring');Crypt::decrypt($encryptedString);Crypt::setMode('ctr');Crypt::setCipher($cipher);
Mail::send('email.view', $data,function($message){});Mail::send(array('html.view','text.view'), $data, $callback);Mail::queue('email.view', $data,function($message){});Mail::queueOn('queue-name','email.view', $data, $callback);Mail::later(5,'email.view', $data,function($message){});// Write all email to logs instead of sendingMail::pretend();
Messages
// These can be used on the $message instance passed into Mail::send() or Mail::queue()$message->from('email@example.com','Mr. Example'); $message->sender('email@example.com','Mr. Example'); $message->returnPath('email@example.com'); $message->to('email@example.com','Mr. Example'); $message->cc('email@example.com','Mr. Example'); $message->bcc('email@example.com','Mr. Example'); $message->replyTo('email@example.com','Mr. Example'); $message->subject('Welcome to the Jungle'); $message->priority(2); $message->attach('foo\bar.txt', $options);// This uses in-memory data as attachments$message->attachData('bar','Data Name', $options);// Embed a file in the message and get the CID$message->embed('foo\bar.txt'); $message->embedData('foo','Data Name', $options);// Get the underlying Swift Message instance$message->getSwiftMessage();
Queues
Queue::push('SendMail', array('message'=> $message));Queue::push('SendEmail@send', array('message'=> $message));Queue::push(function($job)use $id {}); php artisan queue:listen php artisan queue:listen connection php artisan queue:listen --timeout=60 php artisan queue:work
Validation
Validator::make( array('key'=>'Foo'), array('key'=>'required|in:Foo'));Validator::extend('foo',function($attribute, $value, $params){});Validator::extend('foo','FooValidator@validate');Validator::resolver(function($translator, $data, $rules, $msgs){returnnewFooValidator($translator, $data, $rules, $msgs);});
Rules
accepted active_url after:YYYY-MM-DD before:YYYY-MM-DD alpha alpha_dash alpha_num between:1,10 confirmed date date_format:YYYY-MM-DD different:fieldname email exists:table,column image in:foo,bar,baz not_in:foo,bar,baz integer numeric ip max:value min:value mimes:jpeg,png regex:[0-9] required required_if:field,value required_with:foo,bar,baz required_without:foo,bar,baz same:field size:value unique:table,column,except,idColumn url
Views
View::make('path/to/view');View::make('foo/bar')->with('key','value');View::make('foo/bar')->withKey('value');View::make('foo/bar', array('key'=>'value'));View::exists('foo/bar');// Share a value across all viewsView::share('key','value');// Nesting viewsView::make('foo/bar')->nest('name','foo/baz', $data);// Register a view composerView::composer('viewname',function($view){});//Register multiple views to a composerView::composer(array('view1','view2'),function($view){});// Register a composer classView::composer('viewname','FooComposer');View::creator('viewname',function($view){});
Blade Templates
@extends('layout.name')// Begin a section@section('name')// End a section@stop// End a section and yield@show@parent// Show a section in a template@yield('name')@include('view.name')@include('view.name', array('key'=>'value'));@lang('messages.name')@choice('messages.name',1);@if@else@elseif@endif@unless@endunless@for@endfor@foreach@endforeach@while@endwhile// Echo content{{ $var }}// Echo escaped content{{{ $var }}}{{--BladeComment--}}// Echoing Data After Checking For Existence{{{ $name or'Default'}}}// Displaying Raw Text With Curly Braces@{{This will not be processed byBlade}}
Forms
Form::open(array('url'=>'foo/bar','method'=>'PUT'));Form::open(array('route'=>'foo.bar'));Form::open(array('route'=> array('foo.bar', $parameter)));Form::open(array('action'=>'FooController@method'));Form::open(array('action'=> array('FooController@method', $parameter)));Form::open(array('url'=>'foo/bar','files'=>true));Form::close();Form::token();Form::model($foo, array('route'=> array('foo.bar', $foo->bar)));
Form Elements
Form::label('id','Description');Form::label('id','Description', array('class'=>'foo'));Form::text('name');Form::text('name', $value);Form::text('name', $value, array('class'=>'name'));Form::textarea('name');Form::textarea('name', $value);Form::textarea('name', $value, array('class'=>'name'));Form::hidden('foo', $value);Form::password('password');Form::password('password', array('placeholder'=>'Password'));Form::email('name', $value, array());Form::file('name', array('class'=>'name'));Form::checkbox('name','value');// Generating a checkbox that is checkedForm::checkbox('name','value',true, array('class'=>'name'));Form::radio('name','value');// Generating a radio input that is selectedForm::radio('name','value',true, array('class'=>'name'));Form::select('name', array('key'=>'value'));Form::select('name', array('key'=>'value'),'key', array('class'=>'name'));Form::submit('Submit!');Form::macro('fooField',function(){return'<input type="custom"/>';});Form::fooField();
HTML Builder
HTML::macro('name',function(){}); HTML::entities($value); HTML::decode($value); HTML::script($url, $attributes); HTML::style($url, $attributes); HTML::image($url, $alt, $attributes); HTML::link($url,'title', $attributes, $secure); HTML::secureLink($url,'title', $attributes); HTML::linkAsset($url,'title', $attributes, $secure); HTML::linkSecureAsset($url,'title', $attributes); HTML::linkRoute($name,'title', $parameters, $attributes); HTML::linkAction($action,'title', $parameters, $attributes); HTML::mailto($email,'title', $attributes); HTML::email($email); HTML::ol($list, $attributes); HTML::ul($list, $attributes); HTML::listing($type, $list, $attributes); HTML::listingElement($key, $type, $value); HTML::nestedListing($key, $type, $value); HTML::attributes($attributes); HTML::attributeElement($key, $value); HTML::obfuscate($value);
Strings
// Transliterate a UTF-8 value to ASCIIStr::ascii($value)Str::camel($value)Str::contains($haystack, $needle)Str::endsWith($haystack, $needles)// Cap a string with a single instance of a given value.Str::finish($value, $cap)Str::is($pattern, $value)Str::length($value)Str::limit($value, $limit =100, $end ='...')Str::lower($value)Str::words($value, $words =100, $end ='...')Str::plural($value, $count =2)// Generate a more truly "random" alpha-numeric string.Str::random($length =16)// Generate a "random" alpha-numeric string.Str::quickRandom($length =16)Str::upper($value)Str::title($value)Str::singular($value)Str::slug($title, $separator ='-')Str::snake($value, $delimiter ='_')Str::startsWith($haystack, $needles)// Convert a value to studly caps case.Str::studly($value)Str::macro($name, $macro)
Localization
App::setLocale('en');Lang::get('messages.welcome');Lang::get('messages.welcome', array('foo'=>'Bar'));Lang::has('messages.welcome');Lang::choice('messages.apples',10);
Files
File::exists('path');File::get('path');File::getRemote('path');File::getRequire('path');File::requireOnce('path');File::put('path','contents');File::append('path','data');File::delete('path');File::move('path','target');File::copy('path','target');File::extension('path');File::type('path');File::size('path');File::lastModified('path');File::isDirectory('directory');File::isWritable('path');File::isFile('file');// Find path names matching a given pattern.File::glob($patterns, $flag);// Get an array of all files in a directory.File::files('directory');// Get all of the files from the given directory (recursive).File::allFiles('directory');// Get all of the directories within a given directory.File::directories('directory');File::makeDirectory('path', $mode =0777, $recursive =false);File::copyDirectory('directory','destination', $options =null);File::deleteDirectory('directory', $preserve =false);File::cleanDirectory('directory');
Helpers
Arrays
array_add($array,'key','value'); array_build($array,function(){}); array_divide($array); array_dot($array); array_except($array, array('key')); array_fetch($array,'key'); array_first($array,function($key, $value){}, $default);// Strips keys from the arrayarray_flatten($array); array_forget($array,'foo');// Dot notationarray_forget($array,'foo.bar'); array_get($array,'foo','default'); array_get($array,'foo.bar','default'); array_only($array, array('key'));// Return array of key => valuesarray_pluck($array,'key');// Return and remove 'key' from arrayarray_pull($array,'key'); array_set($array,'key','value');// Dot notationarray_set($array,'key.subkey','value'); array_sort($array,function(){});// First element of an arrayhead($array);// Last element of an arraylast($array);
Paths
app_path(); public_path();// App root pathbase_path(); storage_path();
Strings
camel_case($value); class_basename($class);// Escape a stringe('<html>'); starts_with('Foo bar.','Foo'); ends_with('Foo bar.','bar.'); snake_case('fooBar'); str_contains('Hello foo bar.','foo');// Result: foo/bar/str_finish('foo/bar','/'); str_is('foo*','foobar'); str_plural('car'); str_random(25); str_singular('cars');// Result: FooBarstudly_case('foo_bar'); trans('foo.bar'); trans_choice('foo.bar', $count);
URLs and Links
action('FooController@method', $parameters); link_to('foo/bar', $title, $attributes, $secure); link_to_asset('img/foo.jpg', $title, $attributes, $secure); link_to_route('route.name', $title, $parameters, $attributes); link_to_action('FooController@method', $title, $params, $attrs);// HTML Linkasset('img/photo.jpg', $title, $attributes);// HTTPS linksecure_asset('img/photo.jpg', $title, $attributes); secure_url('path', $parameters); route($route, $parameters, $absolute =true); url('path', $parameters = array(), $secure =null);
Miscellaneous
csrf_token(); dd($value); value(function(){return'bar';});with(newFoo)->chainedMethod();
虽功未成,亦未敢藏私,众侠诸神通尽录于此,竟成一笈,名葵花宝典,以飨后世。
邮箱:steven9801@163.com
QQ: 48039387
邮箱:steven9801@163.com
QQ: 48039387