Laravel开发记录(二):MVC编写及Route
前面一篇介绍了怎么安装,继续,接下来就是重头戏MVC,事实上我们大部分的开发工作都在这三个文件中进行,简单来说:业务逻辑控制在controller,数据处理逻辑在Model,视图前台在views,在这之中充满各种调用laravel框架内的方法,好在laravel有丰富的命令行工具实现这些文件的自动创建。
一、创建Crontroller控制器、Model文件
1、创建控制器一行命令搞定,但是默认创建在/app/controller里,建议还是分模块创建,比如我的应用分为前后台,我就分别创建Admin和Customer两个模块,方法很简单只要在控制器名前加目录名就行。
#创建控制器运行
php artisan make:controller Admin/UserController
这样就会在controller下建立Admin文件夹下生成UserController文件。
2、创建Model文件也很方便,还是一条命令,但是注意laravel在安装的时候就已经生成了Users的Model文件了,建议不用生成了,因为其中有很多与登录相关的代码了,再生成就覆盖为空的了,不值得。
#创建model运行
php artisan make:model Models/Kdml
注意这里我们也指定了目录,因为如果不指定就会生成在/app目录下,项目复杂起来自己看都烦。
3、view视图文件我是直接网上下的前端模板,方便快捷,直接拷贝到/resources/view/控制器模块名/文件夹下,前端静态资源加载就成了一个问题,我才用最简单的方式,将相关的前端资源文件拷贝到/public/static(自己建的)/相应模块名文件夹下,然后在view文件中将相应链接改为
{{URL::asset('static/admin/assets/styles.css')}}
这就ok了吗?错!
你还需要将view文件改为xxx.blade.php的文件名形式这样才能使用blade的相关功能代码。
至于页面内的相关链接跳转使用:
{{url('/admin/index')}}
替换跳转链接
二、创建控制器基本代码和配置Route
laravel的基本流程可以理解为靠route拦截相应请求,转给控制器的相应方法,控制器方法再渲染视图,所以我们先在控制器中建立index方法
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class IndexController extends Controller
{
public function index(){
return view('admin.index.index');
}
}
如上面代码所示,我们在控制器中添加了一个方法,这个方法渲染views下的admin下index下的index.blade.php
接下来我们就要把这一条加入route
因为这个是admin模块的所以我们可以这么写:
Route::prefix('admin')->namespace('Admin')->group(function (){
Route::get('index','IndexController@index');
});
现在请打开你的浏览器测试效果吧,访问localhost/项目名/public/admin/index,应该就能看到效果了。
没有包含在模块中的route可以简单写:
Route::get('/','HomeController@index');
同样如果是需要post,那么就把get改为post就行:
Route::post('kdml','KdmlController@index');
控制器中接收参数可以使用
public function store(Request $request){
#打印出post的数据
dd($request->all());
}
Route中还可以传参数:
Route::post('user/update/{id}','UserController@update');
Route::get('user/delete/{id}','UserController@destroy');
对应控制器代码:
public function destroy($id)
{
//
User::destroy($id);
//实现跳转
return redirect('/admin/user');
}
ok!今天先写到这,明天弄用户认证相关的设置。