2014-02-20 4 views
0

Я использую Laravel 4 и мой магазин функция в контроллере:Как изменить Input :: all() данные в laravel 4?

public function store() 
{ 
    $validation = new Services\Validators\Speaker; 

    if($validation->passes()) 
    {     

     $file = Input::file('image'); 

     $imageName = time().'_'.$file->getClientOriginalName(); 

     $file->move('photos/',$imageName); 

     $input = Input::all();   

     $speaker = $this->speaker->create(Input::all()); 


     return Redirect::route('speaker.index'); 
    } 

Загруженный фото перемещается в указанное место и назван правильно. Но в базе данных имя файла изображения не сохраняется правильно. «C: \ xampp \ tmp \ php2B7D.tmp» этот вид данных сохраняется. Я хочу сохранить имя и путь изображения. Есть идеи. Заранее спасибо.

+0

вы должны внести изменения в $ input и -> create ($ input). – caoglish

+0

да, я бы хотел. Я повторил Input :: all(). спасибо – Aye

+0

Я нашел ответ. Вместо $ input = Input :: all() я заменяю на $ input = array ('datafield1' => 'datavalue1', 'datafield2' => 'datavalue2); – Aye

ответ

0

Я нашел решение. здесь код

public function store() 
{ 
    $validation = new Services\Validators\Speaker; 

    if($validation->passes()) 
    { 

     $file = Input::file('image'); 

     $imageName = time().'_'.$file->getClientOriginalName(); 


     $file->move('photos/',$imageName); 

     $input = array('name'=>Input::get('name'), 
         'image'=> 'photos/'.$imageName, 
         'desc'=>Input::get('desc') 
        ); 



     $speaker = $this->speaker->create($input); 

     return Redirect::route('speaker.index'); 
    } 
Смежные вопросы