laravel使用笔记

此笔记持续更新中……

路由

Laravel的路由是通过配置文件(app/Http/routes.php)来配置的,相对于根据控制器自动路由这种方式,更加灵活

获取当前控制器和方法

1
2
$currentAction = \Route::currentRouteAction();
list($controller, $method) = explode('@', $currentAction);

分组

1
2
3
4
Route::group(['namespace' => 'User', 'prefix' => 'user'], function(){
Route::get('/center',['uses' => 'IndexController@center'])->name('user/center');
Route::get('/join',['uses' => 'IndexController@join'])->name('user/join');
});

在控制器中跳转

在控制器里跳转可以用route来生成一个绝对的url,然后通过redirect来跳转

1
return redirect()->route('activity')

route接收的第一个参数是routes配置文件里定义的路由名称(name(‘activity’)),而不是get方法的第一个参数——这个可以通过url来进行访问,但是却不支持在程序里跳转

Model

关联查询

1
2
3
$model->whereHas('tags', function($query) use ($tids){
$query->whereIn('tag_id',$tids);
});

模板

变量

1
2
3
Hello, {{$name}}.
Hello, @{{name}}. //在javascript中使用
Hello, {!! $name !!}.//不使用htmlspecialchars

foreach

1
2
3
@foreach ($list as $item)
<li>{{$item->name}}</li>
@endforeach

共享数据

1
use Illuminate\Support\Facades\View;
1
View::share('key', 'value');

URL

js/css文件

1
<link href="{{ URL::asset('assets/bootstrap/dist/css/bootstrap.min.css') }}" rel="stylesheet">

assets在public文件夹下

内部链接

1
<a href="{{ URL::to('user/login/') }}">Login</a></li>

Artisan

Migration

  • 创建
1
2
php artisan make:migration create_users_table
php artisan make:migration create_tags_table --create=tags
  • 修改
1
php artisan make:migration add_status_to_grades_table --table=grades
  • 修改字段

修改字段需要先安装依赖

1
composer require "doctrine/dbal"
1
$table->renameColumn('from', 'to');
  • 删除字段
1
$table->dropColumn('votes');
  • 执行
1
php artisan migrate
  • 回滚
1
php artisan migrate:rollback
  • reset
1
php artisan migrate:reset

其他

上传文件

1
2
3
4
5
6
if ($request->hasFile('cover')){
$imageName = time().'.'.$request->file('cover')->getClientOriginalExtension();
$path = base_path() .'/public' .self::COVER_PATH;
$res= $request->file('cover')->move($path, $imageName);
return $imageName;
}

Session

1
2
3
$request->session()->has('user');
$request->session()->put('user', $userinfo);
$reqeust->session()->get('user');

Cache

  • 配置(config/cache.php)
1
'default' => env('CACHE_DRIVER', 'memcached'),
  • 使用
1
2
3
4
use \Cache;
Cache::put('key', 'value', $minutes);
$value = Cache::get('key');
Cache::has('key');

Q&A

TokenMismatchException

1
<input type="hidden" name="_token" value="{{ csrf_token() }}">
坚持原创技术分享,您的支持将鼓励我继续创作!