public function up()
 {
     $this->schema->table('discussions', function (Blueprint $table) {
         $table->string('slug');
     });
     // Store slugs for existing discussions
     $this->schema->getConnection()->table('discussions')->chunk(100, function ($discussions) {
         foreach ($discussions as $discussion) {
             $this->schema->getConnection()->table('discussions')->where('id', $discussion->id)->update(['slug' => Str::slug($discussion->title)]);
         }
     });
 }
Exemplo n.º 2
0
 /**
  * Set the discussion title.
  *
  * This automatically creates a matching slug for the discussion.
  *
  * @param string $title
  */
 protected function setTitleAttribute($title)
 {
     $this->attributes['title'] = $title;
     $this->slug = Str::slug($title);
 }
<?php

/*
 * This file is part of Flarum.
 *
 * (c) Toby Zerner <*****@*****.**>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
use Flarum\Util\Str;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Schema\Builder;
return ['up' => function (Builder $schema) {
    $schema->table('discussions', function (Blueprint $table) {
        $table->string('slug');
    });
    // Store slugs for existing discussions
    $schema->getConnection()->table('discussions')->chunk(100, function ($discussions) use($schema) {
        foreach ($discussions as $discussion) {
            $schema->getConnection()->table('discussions')->where('id', $discussion->id)->update(['slug' => Str::slug($discussion->title)]);
        }
    });
}, 'down' => function (Builder $schema) {
    $schema->table('discussions', function (Blueprint $table) {
        $table->dropColumn('slug');
    });
}];