是否有可能在Doctrine中的一个表上有多个slug?
我在我的yaml文件中尝试过这个:
Article:
tableName: tst_article
actAs:
Sluggable:
unique: true
fields: [title]
canUpdate: true
Sluggable:
unique: true
fields: [text]
name: secondSlug
columns:
id:
type: integer(8)
primary: true
autoincrement: true
category_id:
type: integer(8)
title:
type: text(255)
text:
type: clob
Run Code Online (Sandbox Code Playgroud)
但是在生成sql之后只生成了第二个插件......
首先,我对rails和ruby非常陌生.
我正在尝试为自定义URL创建一个slug.
我有一个带有first_name和last_name的用户模型.这个模型也有一个slug.
我想要做的是让它检查我的数据库,看看是否有一个slug的实例,例如.看看有多少Joe博客存在.如果没有,它会获得url whatever.com/joe-blogs,如果大于0,则获得count的值:whatever.com/joe-blogs-COUNT
我试图给我的slu it做什么
def generate_slug
NoSlug == Users.sum("slug").where(:slug => first_name-last_name.perameterize)
if NoSlug == 0
self.slug ||= first_name-last_name.perameterize
else NoSlug > 0
self.slug ||= first_name-last_name-NoSlug.perameterize
end
end
Run Code Online (Sandbox Code Playgroud)
我试图解决它,但没有这样的运气 - 任何建议或指针?
谢谢!
通常,我会像这样创建 slug:
params[:user][:name_slug] = params[:user][:name].parameterize
Run Code Online (Sandbox Code Playgroud)
但这与 Devise 相当有问题 - 我该如何添加它?我已经创建了一个控制器,我在其中指定了创建用户所需的属性,但是如何在那里添加 slug 呢?
class RegistrationsController < Devise::RegistrationsController
private
def sign_up_params
params.require(:user).permit(:name, :name_slug, :email, :password, :password_confirmation)
end
protected
def update_resource(resource, params)
resource.update_without_password(params)
end
end
Run Code Online (Sandbox Code Playgroud)
先感谢您。
我正在使用 CakePHP 3.6,当我使用带有德语变音符号的单词时,例如:
\n\nText::slug('Grundst\xc3\xbccke')\nRun Code Online (Sandbox Code Playgroud)\n\n我会得到:
\n\n\n\n\nGrundstucke(其中 \xc3\xbc = u)
\n
但这是不正确的,我应该得到:
\n\n\n\n\nGrundstuecke(其中 \xc3\xbc = ue)
\n
是否有一个选项可以设置,以便元音变音按照我想要的方式进行转换?
\n在这种情况下使用 slug 并使其正常工作的最佳方法是什么。我可以看到浏览器上的 URL 显示了请求的项目,但我无法呈现详细页面。我找不到问题的出处。当我访问“page_detail”时,url 是“ http://127.0.0.1:8000/posts/2019/03/23/greetings/ ”,根据我的输入这是正确的,但 django 会抛出一个错误来呈现页面。错误是: TypeError: post_detail() got an unexpected keyword argument 'slug'
模型:
class Post(models.Model):
STATUS_CHOICES = (
('draft', 'Draft'),
('published', 'Published'),
)
title = models.CharField(max_length=250)
slug = models.SlugField(max_length=250,
unique_for_date='publish')
author = models.ForeignKey(User, on_delete = models.CASCADE, related_name='blog_posts')
body = models.TextField()
publish = models.DateTimeField(default=timezone.now)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
status = models.CharField(max_length=10,
choices=STATUS_CHOICES,
default='draft')
published = PublishedManager() # Custom Model Manager
def get_absolute_url(self):
''' Canonical URL for post detail.'''
return reverse('snippets:post-detail',
args=[self.publish.year,
self.publish.strftime('%m'),
self.publish.strftime('%d'), …Run Code Online (Sandbox Code Playgroud) 我想创建一个多语言 Ghost CMS 网站,在多语言帖子中使用相同的 slugs。
例如
从本演练中我了解到,我需要为每种语言多次创建相同的帖子,并且 slug 必须是唯一的。为了保持一致,我想对hello-world每种语言的同一篇文章使用相同的 slug (即 )。有没有办法做到这一点,也许是通过动态路由?
因此,我有这篇文章架构,我想在其中创建一个独特的 slug。
const mongoose = require("mongoose")
const Schema = mongoose.Schema
var URLSlug = require('mongoose-slug-generator')
const articleSchema = new Schema({
title: { type: String, required: true },
description: { type: String, required: true },
userId: { type: Schema.Types.ObjectId, ref: "User" },
slug: { type: "String", slug: "title", unique: true }
}, { timestamps: true })
articleSchema.pre("save", function(next) {
this.slug = this.title.split(" ").join("-")
next()
})
articleSchema.plugin(URLSlug("title", {field: "Slug"}))
const Article = mongoose.model("Article", articleSchema)
module.exports = Article
Run Code Online (Sandbox Code Playgroud)
这是文章控制器
newArticle: (req, …Run Code Online (Sandbox Code Playgroud) 我正在我的 laravel crud 项目上创建一个编辑部分。当我按下编辑键时,它将重定向到edit.blade.php将调用 slug 而不是它们的 id 的 。我已经研究过了,它显示了错误Too few arguments to function App\Http\Controllers\ProductController::edit(), 1 passed and exactly 2 expected
我的路线
Route::get('edit/{slug}', $url. '\productController@update');
Route::get('edit', $url. '\productController@edit');
Run Code Online (Sandbox Code Playgroud)
我的 ProductController::edit()
public function edit(Product $product, $slug)
{
return view('edit', compact('product'));
}
Run Code Online (Sandbox Code Playgroud)
我的 ProductController::update()
public function update(Request $request, Product $product, $slug)
{
Product::where('product_slug',$request->$slug)->update([
'product_title' => $request->title,
'product_slug' => $request->slug,
'product_image' => $request->image
]);
// redirect
return redirect('edit');
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激,提前致谢
我有一个正则表达式,用连字符替换所有非字母数字字符.
slugName = $(this).val().replace(/[^a-z0-9]/gi, '-');
Run Code Online (Sandbox Code Playgroud)
这应该是应该的,但是因为这是从用户输入生成的,所以我可能最终得到一个my-awesome-title---stuff可以输入的结果my awesome title & stuff
正如您所看到的,我现在有三个连续的连字符,它们并不像一个漂亮的URL那样具有吸引力.
如果有连续的连字符行,是否有某些方法可以替换此类事件?
我已经看到以下问题正则表达式删除一个特定的重复字符,这个字符与我的非常相似(如果不准确),但它是用C#实现的,并使用该语言的字符串方法.
我想知道是否有人可以提出javascript它的实施?
如果你有例子
what---is-your-name- => what-is-your-name
---what-is----your-name-- => what-is-your-name
Run Code Online (Sandbox Code Playgroud)
那么如何删除特定字符的重现,在这种情况下-,用-javascript中的一个替换它?
slug ×10
javascript ×2
regex ×2
cakephp ×1
cakephp-3.x ×1
crud ×1
devise ×1
diacritics ×1
django ×1
doctrine ×1
express ×1
ghost-blog ×1
laravel ×1
mongodb ×1
mongoose ×1
multilingual ×1
node.js ×1
php ×1
ruby ×1
slugify ×1
url ×1