如何返回使用spatie sluggable创建的子弹?

时间:2019-07-09 15:46:52

标签: php laravel spatie

如何抓取/返回使用Spatie Sluggable创建的Slug。 我将slug用作两个表之间的标识符,并希望从单个控制器将slug更新到两个表。

public function store(Request $request)
    {
Section 1 

 $newbook = new Books;
        $newbook->book_code = $request->input('book_code');
        $newbook->title = $request->input('title');
        $newbook->description = $request->input('description');
        $newbook->category = $request->modal_hidden;
        $newbook->amount = $request->input('amount');
        // $newbook->discount = $request->input('discount');
        $newbook->quantity = $request->input('quantity');

       Section 2 

        // ##############################################################
        if (Input::hasFile('desc_photos')) {
            $files = $request->file('desc_photos');
            foreach ($files as $file) {
                print_r($file->getClientOriginalName());
                $path = public_path('images/bookcover/book_desc/' . $filename);
                Image::make($file->getRealPath())
                    ->resize(800, 600)
                    ->save($path);
                $desc_photo = new BookDescImg;
                $file_replace = $file->getClientOriginalName();
                $filename = date('Y-m-d-H:i:s') . '-' . $file_replace;
                $desc_photo->slug = $request->input('????????'); // what do I give here
                $desc_photo->image_name = $filename;
                $desc_photo->save();
            }
        }



        $newbook->save();
}

我想抓住将在第一部分中创建的段并将其传递给第二部分。

我不太确定如何实现它。

任何帮助将不胜感激

我正在使用 Spatie Sluggable Package ,并且标题为“ slug”。

作为一种解决方法,我现在传递book_code,但是我发现旅途中很难管理

我还想添加一个新表和唯一键,以便通过它们链接这些表。

建议始终受到欢迎。 谢谢

1 个答案:

答案 0 :(得分:1)

子弹应该是:

$slug = str_slug($request->input('title'));
$desc_photo->slug = $slug;

但是,如果您的书名不是唯一的并且先前已经生成了子弹,则在这种情况下,您必须更新BookDescImg子弹部分。因为Spatie Sluggable软件包会在子段的末尾添加整数,例如1、2、3、4等,以使该子段唯一。