我有一个正在运行的博客,但我对漂亮的网址的想法有点晚了。
我不想使用 slugable 等捆绑包,因为我没有太多时间阅读文档并实现它们。
是否有可能在条令执行到数据库之前到达实体的字段并从中生成段头?
我在实体中想到了一个简单的解决方案,例如:
public function __construct() {
$this->setPostedAt(new \DateTime());
$this->setSlug();
}
public function setSlug(){
$tmpslug = (string)$this->id."-";
$tmpslug .= $this->slugify($this->title);
$this->slug = $tmpslug;
}
Run Code Online (Sandbox Code Playgroud)
然而,这将不起作用,因为调用 constructor() 时 id 和 title 字段为空。
有没有不需要实现新扩展的快速解决方案?
谢谢!
我目前正在跟踪路线。
$router->get('/contact-us','HomeController@contactUs')->name('contact-us');
$router->get('/about','HomeController@about')->name('about');
Run Code Online (Sandbox Code Playgroud)
现在,我想让一般页面可以通过以下路线访问,
$router->get('/{slug}','SomeController@about')->name('general-page');
Run Code Online (Sandbox Code Playgroud)
但主要问题是联系我们,关于页面与 slug 路由匹配,并且调用了错误的控制器。有没有什么方法可以从一般页面路由中排除此类 slugs。
好吧,我的问题很简单.
ID会影响Google上网页的位置吗?我有这样的链接
http://example.com/news/title-slug/15/
,人们告诉我,我应该从URL中删除ID.
我相信这不是真的.按照我的逻辑,你不能依赖于标题的slu .. 我知道如果没有两个页面具有相同的标题,它应该可以正常工作,但是如果在那里没有任何伤害我为什么要删除它.
我正在创建一个需要slug系统的系统.例如,标题为"博客标题:此处"的博客帖子的URL将是:
YYYY/MM/DD /对,博客标题,在这里
我已经很好地设置了系统,如果您的URL匹配多个条目,它会显示所有匹配条目的摘要,如果它只匹配一个条目,则显示完整条目,依此类推.我遇到的唯一麻烦就是标题的"清除".目前,我只考虑第一个字:我的SQL查询结束如下:
'AND subject LIKE '.$this->db->escape(substr($title,0,strpos($title,'-')).'%')
Run Code Online (Sandbox Code Playgroud)
问题是,如果同一天发布的两个帖子以相同的单词开头,则单个条目永远不会匹配.此外,如果一个帖子以单词"A"开头,而同一天发布的另一个帖子以字母A开头,则前一个帖子永远不能单独匹配.
我最初的想法是尝试将slu with 中的每个单词与a 匹配LIKE %word%,虽然这样看起来更好但看起来仍然不完美("一个slu ::麻烦!"和"一个麻烦的slu"会发生冲突).这个问题有优雅的解决方案吗?
看看StackOverflow的作用:
http://stackoverflow.com/questions/8933768/c-sharp-boolean-outside-method-wont-read
Run Code Online (Sandbox Code Playgroud)
URL没有最终装饰器,主要用于SEO目的.
我想在ASP.Net MVC3应用程序上使用这样的东西.
假设在Article桌面上我有一个字段Slug nvarchar(1024) not null,如何将其推出路由引擎,以便当有人访问链接时出现?
我希望 ID可见,并且即使没有最后的slug,链接也能正常工作.如果我更改数据库中的slug,任何链接仍然可以工作,因为ID将是文章的唯一链接.
一个清晰,简短的例子将是非凡的.
我正在决定是否强制要求slu to才能查看提交内容.
现在,要么提交提交中的任何一个:
domain.com/category/id/1/slug-title-here
domain.com/category/id/1/slug-blah-foo-bar
domain.com/category/id/1/
所有人都去了同一个提交.
您也可以将slug更改为您想要的任何内容,它仍然可以工作,因为它只检查类别,ID和提交#(在第二个示例中).
我想知道这是否是正确的方法呢?从SEO的角度来看,我应该这样做吗?如果没有,我应该对没有slug请求URL的用户做什么?
在重复方面处理slu is的最佳方法是什么?比如说,slug是一篇博文.似乎标准的slug转换似乎删除了所有非字母数字字符,然后降低了大小写,最后用低分或连字符打破了空格.但是有问题,例如:
标题=> S ..
两个独特的标题有一个重复重复.有没有办法解决这个问题?也许简单的安全符号转换?
但是,我希望它能够从每个标题中获得相同的slug,以防止重复发布项目.
使用Rails gem"friendly_id",是否可以获得要创建的slug的"实时预览"?在保存对象之前,即(并在使用ajax请求键入时返回)?
如果是这样,怎么样?
我有这样的网址:
http://domain/sentencijos/autoriai/429/marselis-prustas,
其中sentencijos是一个控制器,autoriai是一种方法,429(param)是marselis prustas ID.我想删除这个参数(ID),但不知道如何.
完整网址应如下所示:
http://domain/sentencijos/autoriai/marselis-prustas
有人能帮我吗?谢谢
我在数据库中有文章模型和文章表。每篇文章可以使用Laravel的标准URI结构来示出:www.example.com/articles/5(其中,5是文章id)。每篇文章都有一个slug字段(articles表中的slug列),因此我使用Route Model Bindingslug代替id:
RouteServiceProvider.php:
public function boot(Router $router)
{
parent::boot($router);
\Route::bind('articles', function($slug) {
return \App\Article::where('slug', $slug)->firstOrFail();
});
}
Run Code Online (Sandbox Code Playgroud)
在routes.php中,我有:
Route::resource('articles', 'ArticleController');
Run Code Online (Sandbox Code Playgroud)
现在可以使用以下网址访问文章:www.example.com/some_slug。
但是现在,当我要编辑某些文章时,出现以下错误:
没有有关模型[App \ Article]的查询结果。
例如,当我尝试打开以下代码时:www.example.com/some_slug/edit-我收到该错误。
因此,方法ArticleController @ show(Article $ article)可以正常工作,但是ArticleController @ edit(Article $ article)不起作用。
这是我的路线清单:
这是ArticleController的显示和编辑方法:
public function show(Article $article) // THIS WORKS FINE
{
$tags = $article->tags()->get();
return view('articles.show', compact('article', 'tags'));
} …Run Code Online (Sandbox Code Playgroud) slug ×10
php ×5
seo ×4
url ×3
laravel ×2
routes ×2
c# ×1
cakephp ×1
codeigniter ×1
database ×1
doctrine ×1
doctrine-orm ×1
friendly-id ×1
gem ×1
laravel-5.2 ×1
live-preview ×1
symfony ×1
web ×1