laravel框架 - 开发实战(目录结构,路由,控制器,模型,视图)

一、laravel框架的目录结构

laravel框架 - 开发实战(目录结构,路由,控制器,模型,视图)_第1张图片

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');

2、错误信息

        2.1  报错 404 Not Found

laravel框架 - 开发实战(目录结构,路由,控制器,模型,视图)_第2张图片

原因及解决方法 (点击查看官方文档 )

>原因: “域名/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 美化:

laravel框架 - 开发实战(目录结构,路由,控制器,模型,视图)_第3张图片

 打开laravel8手册,复制已下代码到刚才打开的配置好的域名配置文件中

安装 | 入门指南 |《Laravel 8 中文文档 8.x》| Laravel China 社区 (learnku.com)

laravel框架 - 开发实战(目录结构,路由,控制器,模型,视图)_第4张图片

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

 配置好后重启Apache/Nginx验证。

        2.2 错误信息:目标类[TestController]不存在

TestController在\App\Http\Controllers目录下,如下所示:

Route::get('/login', '\App\Http\Controllers\LoginController@login');

3、命令

//查看所有路由

php artisan route:list

laravel框架 - 开发实战(目录结构,路由,控制器,模型,视图)_第5张图片

三、控制器

3.1,控制器的创建

命令:php artisan make:controller 控制器名称
注意:命名规则适用大驼峰法 例如:TestController

 laravel框架 - 开发实战(目录结构,路由,控制器,模型,视图)_第6张图片

//查询:
$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|',
	])
}

四、模型

4.1,模型的创建

命令:php artisan make:model 模型名(表名,首字母大写)

五、视图

1,两种模板文件格式-获取数据(两种文件同时存在时,blade模板引擎文件优先使用):
//login 模板名
login.php	格式:
login.blade.php		格式:{{$title}}


//模板页-显示报错信息-表单验证
@if($reeors->any())
	
报错信息 @foreach($errors->all() as $error)
  • {{$error}}
  • @endforeach
    @endif
    @csrf//防止CSRF攻击 //验证信息显示 姓名:
    @error('name')
    {{$message}}
    @enderror

    你可能感兴趣的:(#,laravel,笔记,PHP,laravel,php)