芝麻web文件管理V1.00
编辑当前文件:/home/digitalh/public_html/vendor/cviebrock/eloquent-sluggable/UPGRADING.md
# Upgrading ## Upgrading from 4.2 to 4.3 * The signature for `scopeFindSimilarSlugs()` dropped the unused `$model` parameter: ```diff - public function scopeFindSimilarSlugs(Builder $query, Model $model, $attribute, $config, $slug) + public function scopeFindSimilarSlugs(Builder $query, $attribute, $config, $slug) ``` If you use this scope in your application, then remove the first argument passed to the scope. - - - ## Upgrading from 3.x to 4.x ### Configuration Changes The configuration array has changed slightly between versions: * In your `config/sluggable.php` configuration file, remove the `save_to` parameter as it is no longer used. Rename `build_from` to `source`, and convert the other parameters from snake_case to lower camelCase (e.g. `include_trashed` -> `includeTrashed`). * Your models no longer need to implement `Cviebrock\EloquentSluggable\SluggableInterface`. * Your models should now use the trait `Cviebrock\EloquentSluggable\Sluggable` instead of `Cviebrock\EloquentSluggable\SluggableTrait`, which no longer exists. * Per-model configuration has been moved from a protect property into a protected method, and the configuration array is now keyed with the attribute field where the slug is stored (i.e. the previous value of the `save_to` configuration. * The service provider name has changed, so update the entry in your project's `config/app.php` from `Cviebrock\EloquentSluggable\SluggableServiceProvider::class` to `Cviebrock\EloquentSluggable\ServiceProvider::class`. #### Version 3.x Configuration Example: ```php use Cviebrock\EloquentSluggable\SluggableInterface; use Cviebrock\EloquentSluggable\SluggableTrait; use Illuminate\Database\Eloquent\Model; class Post extends Model implements SluggableInterface { use SluggableTrait; /** * Sluggable configuration. * * @var array */ protected $sluggable = [ 'build_from' => 'title', 'save_to' => 'slug', 'separator' => '-', 'include_trashed' => true, ]; } ``` #### Converted Version 4.x Example: ```php use Cviebrock\EloquentSluggable\Sluggable; use Illuminate\Database\Eloquent\Model; class Post extends Model { use Sluggable; /** * Sluggable configuration. * * @var array */ public function sluggable() { return [ 'slug' => [ 'source' => 'title', 'separator' => '-', 'includeTrashed' => true, ] ]; } } ``` ### Other Changes #### Artisan Command The `php artisan sluggable:table` command has been deprecated so you will need to make and run your own migrations if you need to add columns to your database tables to store slug values. #### Route Model Binding Route Model Binding has been removed from the package. You are encouraged to handle this yourself in the model's `getRouteKeyName` method, or in a `RootServiceProvider::boot` method as described in the [Laravel Documentation](https://laravel.com/docs/5.2/routing#route-model-binding). See [ROUTE-MODEL-BINDING.md](ROUTE-MODEL-BINDING.md) for details. #### Query Scopes Because the package now supports multiple slugs per model, the `findBySlug()` and other `findBy*` methods have been removed from the package by default, as has the `whereSlug()` query scope. You should just update your code to use standard Eloquent methods to find your models, specifying which fields to search by: ```php // OLD $posts = Post::whereSlug($input)->get(); $post = Post::findBySlug($input); $post = Post::findBySlugOrFail($input); $post = Post::findBySlugOrIdOrFail($input); // NEW $posts = Post::where('slug',$input)->get(); $post = Post::where('slug', $input)->first(); $post = Post::where('slug', $input)->firstOrFail(); $post = Post::where('slug', $input)->first() ?: Post::findOrFail((int)$input); ``` Alternatively, your model can use the `SluggableScopeHelpers` trait. See [SCOPE-HELPERS.md](SCOPE-HELPERS.md) for details. - - - Copyright (c) 2013 Colin Viebrock