【问题标题】:Non English slug for October cms blog十月 cms 博客的非英语蛞蝓
【发布时间】:2019-01-09 21:18:28
【问题描述】:

使用 10 月 cms 的 build 422 和 Rainlab 博客插件,博客文章不可能有非英文的 slug,每次都说“slug 格式无效。”

是否有解决此限制的解决方案或变通方法?

【问题讨论】:

    标签: laravel octobercms


    【解决方案1】:

    我建议您关注extending guide of octobercms 并扩展它。 这样您就可以安全地更新博客插件,而不必担心再次重新编辑它,或者当您必须重新安装 octobercms 时不得不记住对其进行编辑。

    use Rainlab\Blog\Models\Post;
    
    class Plugin extends PluginBase 
    {
        public function boot()
        { 
            // Extend post Model
            Post::extend(function($model) {
                // Only do stuff when validation is triggered
                $model->bindEvent('model.beforeValidate', function() use ($model) {
                     // Find the regex holding value to avoid hardcoding array index
                     foreach($model->rules as $key => $value) {
                         if(strpos($value, 'regex:') !== false) {
                              // unset validation rule containing the regex.
                              unset($model->rules[$key]);
                              break;
                         }
                     }
                }
            });
        }
    }
    

    【讨论】:

      【解决方案2】:

      您可以像这样在模型文件中评论以下代码。

      路径 :: Plugins/rainlab/blog/models/Post.php

       public $rules = [
              'title' => 'required',
              // 'slug' => ['required', 'regex:/^[a-z0-9\/\:_\-\*\[\]\+\?\|]*$/i', 'unique:rainlab_blog_posts'],
              'content' => 'required',
              'excerpt' => ''
          ];
      

      【讨论】:

      • 我认为唯一重要的要注释掉的是 regex 部分?
      • 谢谢,它有效,但我刚刚从 slug 验证中删除了正则表达式部分。
      • @Wreigh 是的,我们这样做。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-18
      • 2021-05-24
      • 2018-11-26
      • 2010-12-08
      • 2021-06-27
      • 1970-01-01
      • 2020-02-21
      相关资源
      最近更新 更多