直接在route.php中写路由
Route ::get( ‘/about’,function(){
return view(‘site.about’); //用“.”来找路劲
});
在控制器中写路由
要先在route中写路由对应的控制器,再在控制器中写返回的视图
Eg:
在route.php中:
Route::get(‘/about’, ‘[email protected]’) //about为控制器名,表示调用index方法
在controller文件夹下添加about控制器,在about控制器中写:
Class about extends controller
{
Public function index()
{
Return view(‘about’); //通过控制器来加载视图
}
}
使用命令生成控制器:
Php artisan make:controller Testcontroller //生成了一个叫Testcontroller的控制器
Blade模板引擎:
变量传递:
在控制器中用with来传递
Public function about()
{
$name=’joe’;
Return view (‘about’)-->with(‘name’,$name);
}
在视图中通过{{ $name }}来输出从控制器中传递过来的值
如果有多个变量,则可以通过数组的方式传递
-->with([
‘firstname’ => ’joe’ ,
‘lastname’ => ’zhou’
]);
{{ }}:变量转义后输出,可以避免xss攻击
{!! !!}:不转义
模板引擎中常用的关键字:@yield,@section,@extend
@extend:用来继承
@yield:用来占位
@section:用来填充,通过@stop来结束
条件判断:
@if
........
@else
........
@endif
循环输出:
@foreach( $people as $people)
<li> {{ $people }} </li>
@endforeach
命令行创建model
Php artisan make:model Article //创建了一个Article的model,会自动关联数据库中名为
// Article的表
进入命令行交互界面:tinker
Php artisan tinker
1、实例化一个model(先创建一个model,然后再实例该model)
article = new App/Article; //article为实例名,App/Article为创建model时的路劲
2、接下来就可以为article实例的属性赋值,即为数据库插入数据
article->title = ‘ mytitle ’; //tiltle为表的字段名
$first ->content = ’ mycontent’;
3、把属性值写入数据库:
article->save();
查找一条记录:find();
$first = App/Aritcle :: find(1); //查找Article表中的第一条数据
更新一条数据:update();
$first->title = ‘updatetitle’;
接着要保存上面的更新,再次使用save();
$first->save(); //这样就更新了title的值
按条件查找一条数据
$second = App/Article::where (‘title’, ‘=’, ‘updatetitle’)->get(); //查找title=updatetitle的记录
查找第一天数据
$second = App/Article::where (‘title’, ‘=’, ‘updatetitle’)->first(); //查找第1条title=updatetitle记
可以直接使用create()创建一条记录,就不用像上面那样先赋值再save()
$article = App\Article::create([ ‘ title ’=>’ secondtitle’, ’ content ’=>’secondcontent ’ ]);
这时会报一个错误:MassAssignment,表示不可以直接使用create()填充;
解决这个问题的方法就是到Article中添加以下代码
Protected $fillable = [ ‘ title ’ ,’ content ’ ]; //设置字段为可以直接填充
有了fillable属性之后就可以直接更新记录,就不用像上面那样先赋值,再用save()
代码如下:
$article -> update ([ ‘ title ’=>’changeTitle ’ , ‘content ’ =>’changecontent’ ]);
用于创建表单form的package:illuminate/html
使用composer安装该package的命令:
Composer require illuminate/html
接着要在config下的App.php中进行配置:
添加如下代码:
Illuminate\Html\HtmlServiceProvider::class,
‘Form’ => Illuminate\Html\FormFacade::class,
这样就可以在view中写如下代码来:
{{!! Form::open() !!}}
{{!! Form::label(‘name’) !!}}
{{!! Form::text(‘name’) !!}}
{{!! Form::text(‘lastname’, null ,[ ‘class’ => ‘form-control’ , ‘id’=> ‘input1’ ]) !!}} //数组中以
//键值对的形式表示属性和值,也可以是自定义的属性和值
{{!! Form::submit(‘发表文章’ , [ ‘class’ => ‘btn form-control ’] ) !!}}
{{!! Form::close() !!}}
Phpstorm中的快捷键使用:
输入ftext,按Tab键:用来复制上一段代码