laravel数据整理

本文深入探讨了Laravel框架的关键组件,包括Artisan命令行工具、Composer依赖管理、路由设置、数据库操作、模型关系、认证授权、邮件发送、队列处理和验证规则等。此外,还介绍了日志记录、缓存、session管理和单元测试等方面,为开发者提供全面的Laravel开发指南。
摘要由CSDN通过智能技术生成
Artisan 
// 在版本 5.1.11 新添加,见 http://d.laravel-china.org/docs/5.1/authorization#creating-policiesphp artisan make:policy PostPolicy
// 针对命令显示帮助信息php artisan --help OR -h
// 抑制输出信息php artisan --quiet OR -q
// 打印 Laravel 的版本信息php artisan --version OR -V
// 不询问任何交互性的问题php artisan --no-interaction OR -n
// 强制输出 ANSI 格式php artisan --ansi
// 禁止输出 ANSI 格式php artisan --no-ansi
// 显示当前命令行运行的环境php artisan --env
// -v|vv|vvv 通过增加 v 的个数来控制命令行输出内容的详尽情况: 1 个代表正常输出, 2 个代表输出更多消息, 3 个代表调试php artisan --verbose
// 移除编译优化过的文件 (storage/frameworks/compiled.php)php artisan clear-compiled
// 显示当前框架运行的环境php artisan env// 显示某个命令的帮助信息php artisan help// 显示所有可用的命令php artisan list// 进入应用交互模式php artisan tinker// 进入维护模式php artisan down// 退出维护模式php artisan up// 优化框架性能// --force    强制编译已写入文件 (storage/frameworks/compiled.php)// --psr      不对 Composer 的 dump-autoload 进行优化php artisan optimize [--force] [--psr]
// 启动内置服务器php artisan serve// 更改默认端口php artisan serve --port 8080
// 使其在本地服务器外也可正常工作php artisan serve --host 0.0.0.0
// 更改应用命名空间php artisan app:name namespace
// 清除过期的密码重置令牌php artisan auth:clear-resets
// 清空应用缓存php artisan cache:clear
// 创建缓存数据库表 migrationphp artisan cache:table
// 合并所有的配置信息为一个,提高加载速度php artisan config:cache
// 移除配置缓存文件php artisan config:clear
// 程序内部调用 Artisan 命令$exitCode = Artisan::call('config:cache');
// 运行所有的 seed 假数据生成类// --class      可以指定运行的类,默认是: "DatabaseSeeder"// --database   可以指定数据库// --force      当处于生产环境时强制执行操作php artisan db:seed [--class[="..."]] [--database[="..."]] [--force]

// 基于注册的信息,生成遗漏的 events 和 handlersphp artisan event:generate

// 生成新的处理器类// --command      需要处理器处理的命令类名字php artisan handler:command [--command="..."] name
// 创建一个新的时间处理器类// --event        需要处理器处理的事件类名字// --queued       需要处理器使用队列话处理的事件类名字php artisan handler:event [--event="..."] [--queued] name

// 生成应用的 key(会覆盖)php artisan key:generate

// 在默认情况下, 这将创建未加入队列的自处理命令// 通过 --handler 标识来生成一个处理器, 用 --queued 来使其入队列.php artisan make:command [--handler] [--queued] name
// 创建一个新的 Artisan 命令//  --command     命令被调用的名称。 (默认为: "command:name")php artisan make:console [--command[="..."]] name
// 创建一个新的资源控制器// --plain      生成一个空白的控制器类php artisan make:controller [--plain] name
php artisan make:controller App\\Admin\\Http\\Controllers\\DashboardController
// 创建一个新的事件类php artisan make:event name
// 创建一个新的中间件类php artisan make:middleware name
// 创建一个新的迁移文件// --create     将被创建的数据表.// --table      将被迁移的数据表.php artisan make:migration [--create[="..."]] [--table[="..."]] name
// 创建一个新的 Eloquent 模型类php artisan make:model name
// 创建一个新的服务提供者类php artisan make:provider name
// 创建一个新的表单请求类php artisan make:request name
// 数据库迁移// --database   指定数据库连接(下同)// --force      当处于生产环境时强制执行,不询问(下同)// --path       指定单独迁移文件地址// --pretend    把将要运行的 SQL 语句打印出来(下同)// --seed       Seed 任务是否需要被重新运行(下同)php artisan migrate [--database[="..."]] [--force] [--path[="..."]] [--pretend] [--seed]
// 创建迁移数据库表php artisan migrate:install [--database[="..."]]
// 重置并重新运行所有的 migrations// --seeder     指定主 Seeder 的类名php artisan migrate:refresh [--database[="..."]] [--force] [--seed] [--seeder[="..."]]
// 回滚所有的数据库迁移php artisan migrate:reset [--database[="..."]] [--force] [--pretend]
// 回滚最最近一次运行的迁移任务php artisan migrate:rollback [--database[="..."]] [--force] [--pretend]
// migrations 数据库表信息php artisan migrate:status
// 为队列数据库表创建一个新的迁移php artisan queue:table
// 监听指定的队列// --queue      被监听的队列// --delay      给执行失败的任务设置延时时间 (默认为零: 0)// --memory     内存限制大小,单位为 MB (默认为: 128)// --timeout    指定任务运行超时秒数 (默认为: 60)// --sleep      等待检查队列任务的秒数 (默认为: 3)// --tries      任务记录失败重试次数 (默认为: 0)php artisan queue:listen [--queue[="..."]] [--delay[="..."]] [--memory[="..."]] [--timeout[="..."]] [--sleep[="..."]] [--tries[="..."]] [connection]
// 查看所有执行失败的队列任务php artisan queue:failed
// 为执行失败的数据表任务创建一个迁移php artisan queue:failed-table
// 清除所有执行失败的队列任务php artisan queue:flush
// 删除一个执行失败的队列任务php artisan queue:forget
// 在当前的队列任务执行完毕后, 重启队列的守护进程php artisan queue:restart
// 对指定 id 的执行失败的队列任务进行重试(id: 失败队列任务的 ID)php artisan queue:retry id
// 指定订阅 Iron.io 队列的链接// queue: Iron.io 的队列名称.// url: 将被订阅的 URL.// --type       指定队列的推送类型.php artisan queue:subscribe [--type[="..."]] queue url
// 处理下一个队列任务// --queue      被监听的队列// --daemon     在后台模式运行// --delay      给执行失败的任务设置延时时间 (默认为零: 0)// --force      强制在「维护模式下」运行// --memory     内存限制大小,单位为 MB (默认为: 128)// --sleep      当没有任务处于有效状态时, 设置其进入休眠的秒数 (默认为: 3)// --tries      任务记录失败重试次数 (默认为: 0)php artisan queue:work [--queue[="..."]] [--daemon] [--delay[="..."]] [--force] [--memory[="..."]] [--sleep[="..."]] [--tries[="..."]] [connection]

// 生成路由缓存文件来提升路由效率php artisan route:cache
// 移除路由缓存文件php artisan route:clear
// 显示已注册过的路由php artisan route:list

// 运行计划命令php artisan schedule:run

// 为 session 数据表生成迁移文件php artisan session:table

// 从 vendor 的扩展包中发布任何可发布的资源// --force        重写所有已存在的文件// --provider     指定你想要发布资源文件的服务提供者// --tag          指定你想要发布标记资源.php artisan vendor:publish [--force] [--provider[="..."]] [--tag[="..."]]
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
composer require [options] [--] [vendor/packages]...
              
Config 
Config::get('app.timezone');
//指定默认值Config::get('app.timezone', 'UTC');
Config::set('database.default', 'sqlite');
              
Route  
Route::get('foo', function(){});
Route::get('foo', 'ControllerName@function');
Route::controller('foo', 'FooController');
              
资源路由 
Route::resource('posts','PostsController');
// 资源路由器只允许指定动作通过Route::resource('photo', 'PhotoController',['only' => ['index', 'show']]);
Route::resource('photo', 'PhotoController',['except' => ['update', 'destroy']]);
              
触发错误 
App::abort(404);
$handler->missing(...) in ErrorServiceProvider::boot();
throw new NotFoundHttpException;
              
路由参数 
Route::get('foo/{bar}', function($bar){});
Route::get('foo/{bar?}', function($bar = 'bar'){});
              
HTTP 请求方式
Route::any('foo', function(){});
Route::post('foo', function(){});
Route::put('foo', function(){});
Route::patch('foo', function(){});
Route::delete('foo', function(){});
// RESTful 资源控制器Route::resource('foo', 'FooController');
// 为一个路由注册多种请求方式Route::match(['get', 'post'], '/', function(){});
              
安全路由 (TBD)
Route::get('foo', array('https', function(){}));
              
路由约束
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]'))
              
// 设置一个可跨路由使用的模式Route::pattern('bar', '[0-9]+')
              
HTTP 中间件 
// 为路由指定 MiddlewareRoute::get('admin/profile', ['middleware' => 'auth', function(){}]);
Route::get('admin/profile', function(){})->middleware('auth');
              
命名路由
Route::currentRouteName();
Route::get('foo/bar', array('as' => 'foobar', function(){}));
Route::get('user/profile', [
'as' => 'profile', 'uses' => 'UserController@showProfile'
]);
Route::get('user/profile', 'UserController@showProfile')->name('profile');
$url = route('profile');
$redirect = redirect()->route('profile');
              
路由前缀
Route::group(['prefix' => 'admin'], function()
{
   
Route::get('users', function(){
   
return 'Matches The "/admin/users" URL';
});
});
              
路由命名空间
// 此路由组将会传送 'Foo\Bar' 命名空间Route::group(array('namespace' => 'Foo\Bar'), function(){})
              
子域名路由
// {sub} 将在闭包中被忽略Route::group(array('domain' => '{sub}.example.com'), function(){});
              
Environment 
$environment = app()->environment();
$environment = App::environment();
$environment = $app->environment();
// 判断当环境是否为 localif ($app->environment('local')){}
// 判断当环境是否为 local 或 staging...if ($app->environment('local', 'staging')){}
              
Log 
// 记录器提供了 7 种在 RFC 5424 标准内定义的记录等级:// debug, info, notice, warning, error, critical, and alert.Log::info('info');
Log::info('info',array('context'=>'additional info'));
Log::error('error');
Log::warning('warning');
// 获取 monolog 实例Log::getMonolog();
// 添加监听器Log::listen(function($level, $message, $context) {});
              
记录 SQL 查询语句 
// 开启 logDB::connection()->enableQueryLog();
// 获取已执行的查询数组DB::getQueryLog();
              
URL  
URL::full();
URL::current();
URL::previous();
URL::to('foo/bar', $parameters, $secure);
URL::action('NewsController@item', ['id'=>123]);
// 需要在适当的命名空间内URL::action('Auth\AuthController@logout');
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);
              
Event 
Event::fire('foo.bar', array($bar));
// 注册一个事件监听器.// void listen(string|array $events, mixed $listener, int $priority)Event::listen('App\Events\UserSignup', function($bar){});
Event::listen('foo.*', function($bar){});
Event::listen('foo.bar', 'FooHandler', 10);
Event::listen('foo.bar', 'BarHandler', 5);
// 你可以直接在处理逻辑中返回 false 来停止一个事件的传播.Event::listen('foor.bar', function($event){
    return false; });
Event::subscribe('UserEventHandler');
              
DB 
基本使用
DB::connection('connection_name');
// 运行数据库查询语句$results = DB::select('select * from users where id = ?', [1]);
$results = DB::select('select * from users where id = :id', ['id' => 1]);
// 运行普通语句DB::statement('drop table users');
// 监听查询事件DB::listen(function($sql, $bindings, $time){
    code_here; });
// 数据库事务处理DB::transaction(function()
{
   
DB::table('users')->update(['votes' => 1]);
DB::table('posts')->delete();
});
DB::beginTransaction();
DB::rollBack();
DB::commit();
              
查询语句构造器 
// 取得数据表的所有行DB::table('name')->get();
// 取数据表的部分数据DB::table('users')->chunk(100, function($users)
{
   
  foreach ($users as $user)
  {
   
      //}
});
// 取回数据表的第一条数据$user = DB::table('users')->where('name', 'John')->first();
DB::table('name')->first();
// 从单行中取出单列数据$name = DB::table('users')->where('name', 'John')->pluck('name');
DB::table('name')->pluck('column');
// 取多行数据的「列数据」数组$roles = DB::table('roles')->lists('title');
$roles = DB::table('roles')->lists('title', 'name');
// 指定一个选择字句$users = DB::table('users')->select('name', 'email')->get();
$users = DB::table('users')->distinct()->get();
$users = DB::table('users')->select('name as user_name')->get();
// 添加一个选择字句到一个已存在的查询语句中$query = DB::table('users')->select('name');
$users = $query->addSelect('age')->get();
// 使用 Where 运算符$users = DB::table('users')->where('votes', '>', 100)->get();
$users = DB::table('users')
              ->where('votes', '>', 100)
              ->orWhere('name', 'John')
              ->get
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值