laravel常见小问题

一、数据填充

  • 定义模型Post.php
  • 定义工厂database/factories/PostFactory.php
$factory->define(Post::class, function (Faker $faker) {

   return [
       'title' => $faker->sentence(6, true),
       'content' => $faker->text(500),
       'user_id' => function() {
           return factory(\App\User::class)->create()->id;
      }             
   ];

});
  • 控制好生成的数据,在database/seeds/XxxTableSeeder.php 中生成后的数据进行修改,也可以直接在thinker命令行下运行factory(App\Post::class,20)->create(); 填充数据保存在数据库
  • 运行 php atrisan db:seed(运行填充器)--

二、中文错误提示

  • 下载扩展包 composer require "overtrue/laravel-lang:~3.0"
  • 在config/app.php中将 Illuminate\Translation\TranslationServiceProvider::class 替换为Overtrue\LaravelLang\TranslationServiceProvider::class
  • 在config/app.php中设置 'locale' => 'zh-CN'
  • 详见 https://github.com/overtrue/laravel-lang#install

三、Scout +ES完成搜索功能

  • 首先,通过 Composer 包管理器来安装 Scout:

    1 下载scout: composer require laravel/scout 
    2 发布scout: php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"
    
  • 在config/app.php中添加Laravel\Scout\ScoutServiceProvider::class,

  • 最后,在你要做搜索的模型中添加 Laravel\Scout\Searchable trait。这个 trait 会注册一个模型观察者来保持模型和所有驱动的同步:

    <?php
    namespace App;
    use Laravel\Scout\Searchable;
    use Illuminate\Database\Eloquent\Model;
    
    class Post extends Model
    {
        use Searchable;
    }

四、向公共模板传值(view composer)

有时候我们想要在每次视图渲染时绑定一些特定数据到视图中,比如登录用户信息,这时候我们就要用到视图Composer,视图Composer通过视图工厂的composer方法实现。该方法的第二个回调参数支持基于控制器动作和闭包函数两种方式。
简单起见,我们还是基于AppServiceProvider,不去单独创建服务提供者,这里我们传递闭包参数(控制器动作参考视图文档):

public function boot()
{
    \View::composer('layout.nav', function($view){
        $user = \Auth::user();
        $view->with('user', $user);
    });

    \View::composer('layout.sidebar', function($view){
        $topics = \App\Topic::all();
        $view->with('topics', $topics);
    });        
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值