app:应用目录,保存项目中的控制器、模型等
bootstrap:保存框架启动的相关文件
config:配置文件目录
database:数据库迁移文件和数据填充文件
public:应用入口文件index.php和前端资源文件(如CSS、JavaScript等)
resources:存放视图文件、语言包和未编译的前端资源文件
routes:存放应用中定义的所以路由
storage:存放编译后的模板,Session文件、缓存文件、日志文件等
tests:自动化测试文件
vendor:存放通过Composer加载的依赖
Route::get('/test','TestController@index');
Route::get('/test', [TestController::class, 'index']);
Route::get('test', function () {
return view('hello get');
});
Route::post('test', function () {
return view('hello post');
});
//match 表示匹配固定的请求方法路由
Route::match(['post','get'],'match', function () {
return view('hello match');
});
//any 表示匹配任意的请求方法路由
Route::any(['any'],function () {
return view('hello any');
});
//必选参数
Route::get('bixuan(id)', function ($id) {
echo '必选'.$id;
});
//可选参数
Route::get('kexuan(id?)', function ($id='默认值') {
echo '可选'.$id;
});
//数组传值:
Route::get('/test/{title?}', function ($title="我是标题") {//{title?}参数名,?可选
return view('login',['title'=>$title]);//view(模板名,数组),
});
//with传值:
Route::get('/with/{title?}', function ($title="我是标题") {//{title?}参数名,?可选
return view('login')->with('title',$title);//模板名
});
//compact传值(推荐):
Route::get('/compact/{title?}', function ($title="我是标题",$name="我是name"){
$age = 19;
return view('login',compact('title','name','age'));
});
//判断视图是否存在:
Route::get('/exists', function () {
if(View::exists('login')){
echo "模板存在";
}else{
echo "模板不存在";
}
});
//例如,如果您想要为应用程序中的所有路由添加一个前缀 api,可以这样使用 Route::prefix 方法:
Route::prefix('api')->group(function () {
Route::get('', 'CategoryController@index');
Route::get('add', 'CategoryController@add');
});
//中间件 ->middleware('')方法允许您指定一个或多个中间件名称
Route::get('middleware/{height}',function(){
reurn '您的身高复合要求';
})->middleware('height');
原因及解决方法 (点击查看官方文档 )
>原因: “域名/user” 这种属于美化后的URL,正常应该是在前面要加上入口文件index.php,即通过“域名/index.php/user”访问。
Apache
框架中自带的 public/.htaccess 文件支持隐藏 URL 中的 index.php,如过你的 Laravel 应用使用 Apache 作为服务器,需要先确保 Apache 启用了mod_rewrite 模块以支持 .htaccess 解析。
如果 Laravel 自带的 .htaccess 文件不起作用,试试将其中内容做如下替换:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Nginx
如果你使用的是 Nginx,使用如下站点配置指令就可以支持 URL 美化:
打开laravel8手册,复制已下代码到刚才打开的配置好的域名配置文件中
安装 | 入门指南 |《Laravel 8 中文文档 8.x》| Laravel China 社区 (learnku.com)
location / {
try_files $uri $uri/ /index.php?$query_string;
}
配置好后重启Apache/Nginx验证。
TestController在\App\Http\Controllers目录下,如下所示:
Route::get('/login', '\App\Http\Controllers\LoginController@login');
//查看所有路由
php artisan route:list
命令:php artisan make:controller 控制器名称
注意:命名规则适用大驼峰法 例如:TestController
//查询:
$list = DB::table('users')->get(); // 获取所有数据
$list = DB::table('users')->where('id', 1)->first(); // 根据ID查找用户
$list = DB::table('users')->where('name', 'John')->first(); // 根据条件查找用户
$list = DB::table('users')->orderBy('name')->get(); // 按条件排序后获取所有用户
$list = DB::table('users')->select('id', 'name', 'email')->get();//查询指定字段select
$list = DB::table('users')->pluck('name', 'id');//指定查询的单个字段并返回一个新的集合(不常用)
//关联查询-join()
DB::table('user as t1')
->select('t1*','t1.name')
->leftjoin('author','t1.id','=','author.id')
->get();
//添加:
$content=input::get('content');
$title=input::get('title');
DB::table('cmss')->insert(array('title'=>$title,'content'=>$content));
//修改:
$data=DB::table('cmss')->where('id',$arr['id'])->update($arr);
//删除:
$arr=DB::table('cmss')->where('id','=',$id)->delete();
//表单验证 - validate:
public function test2(Request $request)
{
$request->validate($request,[
// required 不能为空
// min 最小值
// max 最大值
// integer 整型
// email
//
'name'=>'required|min:2|max:30|',
])
}
命令:php artisan make:model 模型名(表名,首字母大写)
1,两种模板文件格式-获取数据(两种文件同时存在时,blade模板引擎文件优先使用):
//login 模板名
login.php 格式:
login.blade.php 格式:{{$title}}
//模板页-显示报错信息-表单验证
@if($reeors->any())
报错信息
@foreach($errors->all() as $error)
{{$error}}
@endforeach
@endif