Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LARAVEL如何在命名文件的自动增量ID上获取ID值?_Laravel_Laravel 4 - Fatal编程技术网

LARAVEL如何在命名文件的自动增量ID上获取ID值?

LARAVEL如何在命名文件的自动增量ID上获取ID值?,laravel,laravel-4,Laravel,Laravel 4,我试图将上传的文件重命名为和表滑块ID相同的唯一名称 public function postAddSlider(){ $title = Input::get('title'); $image = Input::file('image'); $link = Input::get('link'); $description = Input::get('description'); $filename = $image->getClientOrigin

我试图将上传的文件重命名为和表滑块ID相同的唯一名称

public function postAddSlider(){
    $title = Input::get('title');
    $image = Input::file('image');
    $link = Input::get('link');
    $description = Input::get('description');

    $filename = $image->getClientOriginalName(); //<-- i want to change that filename to be id of table Slider
    $uploadSuccess = Input::file('image')->move(base_path().'/public/assets/slider/', $filename);

    if($uploadSuccess){
        $slider = Slider::create(array(
            'image' =>  $uploadSuccess->getRealPath(),
            'title' => $title,
            'link' => $link,
            'description' => $description
        ));

        if($slider){
            return Redirect::route('slider-add-get')
                    ->with('message','Slider Added Successfully');
        }
    }
    else{
        return Redirect::route('slider-add-get')
                ->with('message','File Upload Error');
    }
}
公共函数postAddSlider(){
$title=Input::get('title');
$image=Input::file('image');
$link=Input::get('link');
$description=Input::get('description');
$filename=$image->getClientOriginalName();//移动(基本路径()。/public/assets/slider/,$filename);
if($uploadSuccess){
$slider=slider::创建(数组)(
'image'=>$uploadSuccess->getRealPath(),
“title”=>$title,
“link”=>$link,
'description'=>$description
));
如果($slider){
return Redirect::route('slider-add-get')
->带有('message','Slider Added Successfully');
}
}
否则{
return Redirect::route('slider-add-get')
->带有('message','File Upload Error');
}
}

或者您有其他方法来重命名唯一名称吗?

我不知道您的模式是什么样的,但是如果您想获得模型的id,必须先保存它

也许你可以这样做:

$slide = new Slide();
$slide->title = Input::get('title');
$slide->url = $temporaryurl;
...etc...
$slide->save();

//once the slide is saved, we can access its id
$slide->url = 'slide-' . $slide->id . $file->getClientOriginalExtension();
$slide->save(); //updates the new url
或者,如果您只是想生成唯一的文件名,您可以使用原始文件名+时间戳。。。可能会导致重复。。。但可能性很小(在同一秒钟内上传两幅图像时使用相同的文件名)


或者,可能是幻灯片标题(去掉非法字符,空格替换为破折号等),再加上时间戳。

谢谢,它可以工作:D我不知道我可以在save@GandhyOnly很乐意帮忙。如果您需要任何进一步的澄清,请对此进行评论。否则我会感谢你接受这个答案:)