1.指定目录创建资源型控制器并绑定模型
php artisan make:controller Admin/ArticleController --resource --model=\\Models\\Article
2.这个就是创建一个ArticelModel模型到/App/Model目录下
php artisan make:model ./Model/ArticleModel
3.创建控制器到/App/Http/Controller/api目录下
php artisan make:controller ./api/ArticleModel
4.创建迁移,表名中不需要加入表前辍:
php artisan make:migration 表名
5.运行所有未完成的迁移:
php artisan migrate
6.查询加入withTrashed,可以查询已经软删除的数据
$article::withTrashed()->find($navigationid);
7.万能路由:
Route::prefix('admin')->namespace('Admin')->middleware(['web', 'checkLogin', 'checkRule'])->group(function () {
Route::get('index', 'IndexController@index');
// Route::get('index/main', 'IndexController@main');
// Route::get('category/index', 'CategoryController@index');
//万能路由
Route::any('{controller}/{action}', function ($class, $action) {
$class = 'App\\Http\\Controllers\\Admin\\' . ucfirst(strtolower($class)) . 'Controller';
if (!class_exists($class)) {
$class = 'App\\Http\\Controllers\\Admin\\EmptyController';
}
$ctrl = \App::make($class);
return \App::call([$ctrl, $action]);
})->where(['class' => '[0-9a-zA-Z]+', 'action' => '[0-9a-zA-Z]+']);
});
8.laravel获取当前访问控制器和方法名称
$action = \Route::current()->getActionName();
list($class, $method) = explode('@', $action);
$controller = substr(strrchr($class, '\\'), 1);
var_dump($controller);var_dump($method);
9.输出sql调试语句
use DB;//引入DB
DB::connection()->enableQueryLog();#开启执行日志
$allModelAuth = $datamodel::where(['publish' => ENV('PUBLISH_ON'), 'pid' => ['neq', 0]])->get('href')->toarray();
print_r(DB::getQueryLog()); //获取查询语句、参数和执行时间
10.aravel在一个控制器中使用另一个控制器中函数的2个方法
方法1:直接继承改控制器,使用$this 调用
方法2:使用use引入该控制器,实例化一个变量upimg,然后使用 upimg调用该方法
use App\Http\Controllers\admin\DictionaryController; //use引入控制器
$dictionary = new DictionaryController; //实例化变量
$data = $dictionary->cache();
11.laravel 中将DB::select 得到的内容转为数组
$sql = "select count(*) as num from api_log where uid='{$this->uid}'";
$data = DB::select($sql);
$data = array_map('get_object_vars', $data);
12.laravel Eloquent ORM 字段自增与自减
laravel Eloquent ORM提供了两个方法来实现自增与自减,这两个方法都至少接收一个参数:需要修改的列。第二个参数是可选的,用于控制列值增加/减少的数目。
$Model->increment('votes');
$Model->increment('votes', 5);
$Model->decrement('votes');
$Model->decrement('votes', 5);