public static function slug($str) { $str = strtolower($str); $str = preg_replace('/[^a-z0-9]/i', '-', $str); $str = preg_replace('/-+/', '-', $str); $str = preg_replace('/-$|^-/', '', $str); return $str ?: '-'; }
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)]); } }); }