(一)控制器:
控制器是啥?
请求的二级分发者
创建控制器的方法:
(1)cmd中在项目根目录下输入php artisan make:controller 控制器名
就可以创建了,
(2)手动创建啦。
RESTful资源控制器:
他其实就是在路由中写这么一条:Route::resource('user','UserController');
你在创建User控制器,他会给你创建出,以下路由规则:
使用php artisan route:list命令可以查出所有的路由规则, 如下:
这方法,一般在项目中运用的比较少!
(二)视图层
什么是视图层?
处理结果的可视化(网页代码生成)
创建视图:
(1):首先在Http/routes.php中写路由 Route::get('/my_home','MyController@index');
(2):在Http/Controllers中创建控制器MyController.php;
(3):在resour ces/views中创建my_welcome.blade.php,一定要写对V层命名规范;
如何将小明动态读取?
方法一:
(1)将小明换成变量名:
(2)在控制器中:
return view('my_welcome')->with('name',"xiaoming");
方法二:
public function index()
{
$data =[
'name'=>'小明','age'=>20
];
return view('my_welcome',$data);
}
方法三:
public function index()
{
$name="lala";
return view('my_welcome',compact('name')/*['name'=>'lala']*/);
}
如何关闭_token验证:
在app/Http/Middleware/VerifyCsrfToken.php中加上以下代码:
use Closure;
public function handle($request, Closure $next)
{
// 使用CSRF
return parent::handle($request, $next);
// 禁用CSRF
return $next($request);
}
在V层(blade模板引擎)中的判断:
输出:
(1)当@{{aaa}}时:默认是不解析的
![]()
(2)当{!! '<script>alert(123)</script>' !!}时:可以解析代码的,但是不建议使用这种方法,不安全:
(3)可以用{{{'<html lang="en">lala</html>'}}}进行转义:
控制流循环:
(1)if语句:
@if($name)
{{$name}}
@else
你叫啥?
@endif
(2)foreach语句:
<ul>
@foreach($list as $val)
<li>{{$val}}</li>
@endforeach
</ul>
子视图:@include可以进行文件包含
(三):model层
model层的创建:
在CMD中进入项目更目录输入以下命令可以创建(User表):
php artisan make:model User
model中的增删改查
//查询所有数据
public function wordsTest()
{
//return $this->where('id','>',1)->get(); //id大于1的
return $this->get(); //或$this->all() //返回所有数据
}
//添加数据
public function wordsAdd()
{
$data = ['username'=>'admin'];
$this->fill($data);
$this->save();
}
//修改一条
public function wordsUpda()
{
$this->find(14);
$this->username = "home";
$this->age = "10";
$this->save();
}
//删除
public function wordsDel()
{
$user = $this->find(10);
$user->delete();
}
创建好model时,要注意以下几点:
(1)当创建好,系统会默认指定ID名为id,此时若与你数据库中标名不一致时,可以用以下代码来改正:
//指定ID名,默认会是id,
//默认id名与数据库id名不一致时:
protected $primaryKey = 'u_id';
(2)当你对这张表进行操作时,laravel框架默认数据库中每个表都存在一个字段,需要关闭
//laravel框架默认数据库中每个表都存在一个字段,需要关闭
public $timestamps = false;
在controller中调用model:
(1):引入model
use App\Words;
(2):调用model中的wordsTest查询
public function index()
{
$words = new Words();
$users = $words->wordsTest();
$users = $users->toArray(); //转换成数组形式
var_dump($users);
}