1、Artisan控制台:
创建控制器:php artisan make:controller StudentController
创建模型:php artisan make:model Student
创建中间件:php artisan make:middleware Activity
2、Laravel的用户认证(Auth)
php artisan make:auth
3、数据表迁移:
php artisan migrate
只创建迁移文件:php artisan make:migration create_students_table
--create=students //create_students_table迁移文件、students表名
创建模型同时创建迁移文件:php artisan make:model Article -m
4、填充测试数据到表中
创建一个填充文件并完善填充文件
php artisan make:seeder StudentTableSeeder
执行单个填充文件
php artisan db:seed --class=StudentTableSeeder
批量执行填充文件(要在DatabaseSeeder中注册)
php artisan db:seed
5、文件上传(config/filesystems.php):
if($request->isMethod('POST')){
$file = $request->file('source');
//文件是否上传成功
if($file->isValid()){
//源文件名
$originalName = $file->getClientOriginalName();
//扩展名
$ext = $file->getClientOriginalExtension();
//MimeType
$type = $file->getClientMimeType();
//临时文件绝对路径
$realPath = $file->getRealPath();
//生成新文件名
$fileName = date('Y-m-d-H:i:s').uniqid().'.'.$ext;
//保存到配置文件设置的驱动磁盘(config/filesystems.php)
$bool = Storage::disk('uploads')->put($fileName,file_get_contents($realPath));
var_dump($bool);
}else{
var_dump($file->getErrorMessage());
}
exit;
}
6、发送邮件(config/mail.php)
Mail::raw() :纯文本
Mail::send() :html格式
config/mail.php配置:
'from' => ['address' => 'seven@163.com', 'name' => 'seven'],
//其他配置读取env下
env配置:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.163.com
MAIL_PORT=465
MAIL_USERNAME=seven@163.com
MAIL_PASSWORD=test123
MAIL_ENCRYPTION=ssl
发送纯文本:
Controller代码如下:
\Mail::raw('邮件内容 测试',function($message){
$message->from('seven@163.com','seven');
$message->subject('邮件主题 测试');
$message->to('541330576@qq.com');
});
发送html:
1)在resource/views/students下新建mail.blade.php模板,内容如下:
<h1>Hello {{$name}}</h1>
2)Controller中代码如下:
\Mail::send('students.mail',['name'=>'seven'],function($message){
$message->to('546630576@qq.com');
});
7、缓存使用(config/cache):
put()、add()、forever()、has()、get()、pull()、forget()
7.1 添加缓存
//添加缓存10min,之前key存在,则会添加失败,返回值bool
$bool=\Illuminate\Support\Facades\Cache::add('key','val',10);
//设置缓存10分钟,之前key存在重新更新,key不存在添加,无返回值
\Illuminate\Support\Facades\Cache::put('key1','val1',10);
//永久保存在缓存中
\Illuminate\Support\Facades\Cache::forever('key1','val1');
7.2 判断缓存key是否存在
\Illuminate\Support\Facades\Cache::has('key1');
7.2 获取缓存
//单纯获取内容,什么都不做
\Illuminate\Support\Facades\Cache::get('key1');
//取出来之后,并删除该缓存
\Illuminate\Support\Facades\Cache::pull('key1');
7.3 删除缓存
$bool = \Illuminate\Support\Facades\Cache::forget('key1');
8、laravel中错误与日志(config/app.php)
8.1 APP_DEBUG :本地开发APP_DEBUG环境变量为true,线上永远为false
8.2 HTTP异常(404,401,50x):
abort('401')//就会跳转到resource/view/errors/401.blade.php,并显示错误
abort('503')//就会跳转到resource/view/errors/503.blade.php,并显示错误
【注意】:如果是404不存在,不需要abort,直接创建resource/view/errors/403.blade.php页面,
如果访问不存在的路由,会自动跳转到这个404
8.3 日志log:
env配置:
APP_LOG=single //"single", "daily", "syslog", "errorlog"
( single:所有日志都永久写到这一个日志文件中
daily:根据日期,每天生成一个日志文件
syslog:
)
APP_LOG_LEVEL=debug
代码中记录日志7中错误级别,这里只写了4中:
Log::info('info',['name'=>'seven','age'=>18]);
Log::warning('warning',['name'=>'seven','age'=>18]);
Log::error('error',['name'=>'seven','age'=>18]);
Log::debug('debug',['name'=>'seven','age'=>18]);
【注】:可以传递数组,lavalel日志中将会序列化成json方便查看
9、Queue队列(config/queue.php)
env配置:
QUEUE_DRIVER=database //database、redis、sync等
9.1 先创建记录对列表
php artisan queue:table //记录未执行的队列任务,
//执行成功就删除,失败了就到failed-table中
php artisan queue:failed-table //记录失败的队列任务
php artisan migrate
9.2 创建一个发送邮件队列任务
php artisan make:job SendEmail
//创建成功后就在app/Jobs/SendEmail.php中
9.3 编辑app/Jobs/SendEmail.php任务
private $email;
public function __construct($email){
$this->email = $email;
}
public function handle(){
Log::info('发送邮件成功,email为',$this->email);
}
9.3 命令行监听队列:php artisan queue:listen
9.4 控制器加入队列:
dispatch(new SendEmail('546630576@qq.com'));
9.5 查看失败的队列任务:
php artisan queue:failed
9.6 重新执行失败队列中的任务:
php artisan queue:retry 10 //只执行ID为10的那个任务
php artisan queue:retry all //执行所有失败的任务
9.7 删除队列任务:
php artisan queue:forget 4 //删除ID为4的那个失败任务
php artisan queue:flush //删除所有失败的任务