首页 > 代码库 > laravel 基础

laravel 基础

直接在route.php中写路由

Route ::get( ‘/about’,function(){

return view(‘site.about’);  //用“.”来找路劲

});

 

在控制器中写路由

要先在route中写路由对应的控制器,再在控制器中写返回的视图

Eg

route.php中:

Route::get(‘/about’, ‘about@index’) //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   //创建了一个Articlemodel,会自动关联数据库中名为      

                            // 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(); //查找第1title=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’ ]);

 

 

 

用于创建表单formpackageilluminate/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键:用来复制上一段代码

 

laravel 基础