我目前正在尝试过滤输入字符串,以找到用户希望与其照片一起显示的单个主题标签。但是,我目前在我的数据库中插入的内容不正确。
最好的情况是每个主题标签都保存在带有照片ID的新数据库行中。但是,我真的不知道如何做到这一点。
$hashtag = new Hashtag;
$hashtag->photo_id = $photo->id;
$hashtag_string = Input::get('hashtags');
$hashtag_string = Str::contains($hashtag_string, '#')
$hashtag->hashtag = $hashtag_string;
$hashtag->save();
我在这个备忘单(http://cheats.jesse-obrien.ca)中找到了一些功能,但我没有让它们正常工作。
答案 0 :(得分:1)
试试这个:
$str = $hashtag_string;
preg_match_all('/#(\w+)/', $str, $matches);
foreach ($matches[1] as $hashtag_name) {
$hashtag = Hashtag::firstOrCreate(array('hashtag' => $hashtag_name));
}
然后,您可以在此foreach循环中将这些主题标签连接到帖子(或者在您的情况下是照片)或某事。