linking/flashr

此软件包最新版本(v1.0.1)没有提供许可证信息。

一个用于以方便方式显示闪存消息的 Laravel 软件包

v1.0.1 2017-04-21 13:12 UTC

This package is auto-updated.

Last update: 2024-09-07 11:53:25 UTC


README

Flashr

一个让打印闪存消息变得简单的 Laravel 软件包!

介绍

这是我发布的第一个软件包。我想学习如何为 Laravel 制作一个简单的软件包。我阅读了大量的关于 IoC 容器、Laravel 如何进行依赖注入等内容。这个软件包受到了伟大的 laracasts/flash 软件包的启发!

安装

运行

$ composer require linking/flashr

当软件包安装后,如果你运行的是 Laravel 5.x,你可以在 AppServiceProvider 中注册此软件包,如下所示

<?php
        use Linking\Flashr\FlashrServiceProvider;
        use Illuminate\Support\ServiceProvider;

        class AppServiceProvider extends ServiceProvider
        {
            /**
             * Bootstrap any application services.
             *
             * @return void
             */
            public function boot()
            {
                // ...
                $this->app->register(FlashrServiceProvider::class);
            }
         
        }

如果你运行的是 Laravel 的旧版本,你可以编辑 app.php 文件,并在 providers 选项中添加以下内容

    'providers' => [
    
        // ...

         \Linking\Flashr\FlashrServiceProvider::class,

    ];

你还应该在 app.php 文件中添加 Facade,在 'aliases' 键下添加

    'aliases' => [
    
        // ..
        'Flashr' => \Linking\Flashr\Facades\Flashr::class,
        // ..
    
    ];

使用方法

在你的控制器中,你可以这样做

public function edit(Post $post) {
    Flashr::success("The post has been edited");
    return view('post.edit', compact('post'));
}

Flashr 提供了不同的函数来打印不同类型的闪存。以下是一个 Flashr 函数列表

  • Flashr::success($message)
  • Flashr::info($message)
  • Flashr::warning($message)
  • Flashr::danger($message)

然后,在你的视图中,你可以通过这样做包含供应商视图

@include('flashr::flashes')

注意:默认情况下,它使用 Twitter Bootstrap 标记。如果你想替换这种行为,请阅读以下内容

如果你想自定义视图,只需这样做

php artisan vendor:publish --tag=flashr

然后,前往你的 views 目录。你应该找到一个供应商目录。在这个目录中,有一个 flashr 目录。你可以编辑此文件以符合你的需求。默认情况下,文件看起来像这样

@php
    $flashr_type = Session::has('_flashr.type') ? Session::get('_flashr.type') : null;
    $flashr_message = Session::has('_flashr.message') ? Session::get('_flashr.message') : null;
@endphp

@if($flashr_type && $flashr_message)

    <div style="position: relative" class="alert alert-{{ $flashr_type }}" role="alert">
        {{ $flashr_message }}
        <span id="close-flash" onclick="var el = this.parentElement; el.remove()"
              style="position: absolute; top: 10px; right: 10px; font-size: 24px; line-height: 10px; cursor: pointer">&times;</span>
    </div>

@endif

如你所见,插件在会话中添加了两个键: _flashr.type_flashr.message