2015-02-10 91 views
1

我已經創建了一個表單,用戶可以添加新聞,我希望他們也能夠上傳圖片。我已經嘗試過了解其他用戶創建了一個上傳表單,但無法理解它。 上傳的圖片需要在我創建的數據庫中存儲圖片路徑和所有其他信息。 原因是我想稍後顯示用戶創建的新聞和圖片,因此可以查看它。 所以我需要一些幫助,因爲我不太明白如何做到這一點,我是laravel的初學者。我不想使用任何.js或其他腳本,因爲我想先學習這些基礎知識。上傳圖片到數據庫laravel

我的數據庫:

class NyhetsmodulTable extends Migration { 


    public function up() 
    { 
     Schema::create('news', function($table) 
     { 
      $table->increments('id'); 
      $table->string('title'); 
      $table->string('author'); 
      $table->string('message'); 
      $table->boolean('active'); 
      $table->timestamps(); 
      $table->string('picture_path'); 
     }); 
    } 

我create.plade.php文件(不知道我的文件格式是正確的):

{{ Form::open(array('route' => 'adminpanel.newsmodule.store', 'files' => true)) }} 
<ul> 
    <li> 
     {{ Form:: label ('title', 'Title: ')}} 
     {{ Form:: text ('title')}} 
    </li> 
    <li> 
     {{ Form:: label ('author', 'Author: ')}} 
     {{ Form:: text ('author')}} 
    </li> 
    <li> 
     {{ Form:: label ('message', 'News: ')}} 
     {{ Form:: textarea ('message') }} 
    </li> 
    <li> 
     {{ Form::file('image')}} 
    </li> 
    <li> 

    </li> 
    <li> 
     {{ Form::submit('Submit') }} 
    </li> 
</ul> 

我的控制,我不明白如何設置:

public function uploadFile() 
{ 

} 

我的路線:

Route::post('adminpanel/newsmodule/create', 
    [ 
     'uses' => '[email protected]', 
     'as' => 'adminpanel.newsmodule.upload' 
    ] 
); 
+0

你不能(不應該)真的在HTML中嵌入窗體。如果您的計劃是使用AJAX在後臺上傳文件,那麼只要AJAX請求隱藏輸入的結果是外部表單的一部分,而不是內部表單的一部分,則您可能會忽略它,否則其內容可能不會提交到正確的地方。但是,是的,如果你只是期待一種形式的神奇工作,它不會。 HTML不會那樣工作。只需將文件輸入包含在外部表單中,就像正常輸入一樣,它就可以工作(但請確保在外部表單上使用''files'=> true')。 – alexrussell 2015-02-10 11:28:02

回答

0

形式開放標籤應該是

{{ Form::open(array('url' => 'adminpanel.newsmodule.create', 'files' => true)) }} 

在第一線, 沒有必要重新聲明形式的內部形狀 文件應被設置爲true,所以它可以發送文件

和存儲圖像,

$news = News::find(1) 
$news->image = Input::file('image'); 
$news->save(); 

因爲我thougt你剛剛保存路徑,

$pathToFile = '/foo/bar/baz.jpg 
Image::make(Input::file('image')->save($pathToFile); 
$news->picture_path = $pathToFile; 
$news->save(); 
+0

所以我應該在我的商店功能中使用它?這是函數現在的樣子: \t'公共職能店() \t { \t \t $輸入=輸入::除了([ '_令牌']); \t \t $ v = Validator :: make($ input,News :: $ rules); \t \t如果($ V->通過()) \t \t { \t \t \t新聞::創建($輸入); \t \t \t return Redirect :: route('adminpanel.newsmodule.index'); \t \t} \t \t return Redirect :: route('adminpanel.newsmodule。打造 ') \t \t \t - > withInput() \t \t \t - > withErrors($ V) \t \t \t - >與(' 消息」, '有驗證錯誤'); \t}' – Smajo 2015-02-10 13:21:19

+0

@Uhmar Hasan 我想通了!謝謝您的幫助! – Smajo 2015-02-11 11:20:58

+0

祝你好運,很高興可以提供幫助 – 2015-02-12 02:22:51