琐碎注意点⚠️

一、分页:

  

我们从Blade模板调用render方法时,确保使用{!! !!}语法以便HTML链接不被过滤。

 有时候就是想得太复杂了,简单的东西操作就行,还老往难的地方钻。

返回上一页就行的,这样简单的js操作。

window.history.go(-1);

 

二、Laravel Blade模板中的forelse

在Laravel Blade模板中经常在循环输出前先判断一下集合是否有值,然后再 foreach 比如:

 

@if ($posts->count())
  @foreach ($posts as $post)
    <p>This is post {{ $user->id }}</p>
  @endforeach
@else
  <p>No posts found.</p>
@endif

其实在Laravel Blade中可以使用 forelse :

@forelse ($posts as $post)
    <p>This is post {{ $post->id }}</p>
@empty
    <p>No posts found.</p>
@endforelse

它的实现可以在 Illuminate/View/Compilers/BladeCompiler.php 找到:

/**
     * Compile the forelse statements into valid PHP.
     *
     * @param  string  $expression
     * @return string
     */
    protected function compileForelse($expression)
    {
        $empty = '$__empty_'.++$this->forelseCounter;

        return "<?php {$empty} = true; foreach{$expression}: {$empty} = false; ?>";
    }

 

 

 三、js实现json对象数组的错误弹框提醒

@section('script_link')
@if (config('app.debug'))
<!-- 使用 https://github.com/VinceG/twitter-bootstrap-wizard -->
@endif
<script src="/assets/admin/js/jquery.bootstrap.wizard.min.js"></script>
<script src="/assets/lib/select2/js/select2.min.js" type="text/javascript"></script>
<script src="/assets/admin/js/jquery.form.js" type="text/javascript"></script>
<script src="/assets/lib/toastr/toastr.min.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="/assets/lib/toastr/toastr.min.css">
@stop @section('script') <script type="text/javascript"> @if (isset($versions)) var url = "{!! action('Admin\\VersionController@edits') !!}"; var message = '编辑成功'; @else var url = "{!! action('Admin\\VersionController@store') !!}"; var message = '添加成功'; @endif // wizard on tab next 提交表单 $('#formVersion').ajaxForm({ url: url, type: 'POST', dataType: 'json', async: false, success: function (returnData) { if (returnData.status == 'success') { layer.msg(message, {icon: 1}); setTimeout(function(){ // 返回上一页 window.location.href = "{!! action('Admin\\VersionController@index') !!}"; },1000) }else{ var msg = JSON.parse(returnData.message); $.each(msg, function(i) { var info = msg[i]; for (var i = 0; i < info.length; i++) { layer.msg(info[i],{icon: 0}); } }); } } }); </script>

  

 

posted @ 2017-03-27 14:16  洪先森  阅读(221)  评论(0编辑  收藏  举报