我試圖重新創建一個簡單的博客功能並允許管理員更新博客文章。Laravel使用可選映像更新記錄
我的問題是在'縮略圖'下的博客表中存儲其名稱的照片沒有正確更新。我保存一個新的帖子功能,但我的更新功能不起作用。
當您在不更新圖像的情況下進行更新時,其餘博客項目會更新,但照片名稱會設置爲空白,如果您嘗試更新圖像,照片會移動但數據庫中的字段爲設置爲臨時位置(/ Applications/MAMP/tmp/php/phpx1jwMA)。
這可能是兩個單獨的問題。
在更新形式我添加了一個隱藏字段與照片名稱:
{{ Form::hidden('old_photo', $blog->thumbnail) }}
和預期的一樣它產生這種形式:
<input name="old_photo" type="hidden" value="1391122313-2013 12 01_0567.JPG">
而且在我的控制器我有這樣的作爲我的更新功能:
public function update($id) {
$input = Input::all();
$blog = Blog::find($id);
if(Input::hasFile('thumbnail')) {
$file = Input::file('thumbnail');
$name = time() . '-' . $file->getClientOriginalName();
$file = $file->move(public_path() . '/images/blog/', $name);
$blog->thumbnail = $name;
}
$blog->save();
return View::make('admin.blog.index', [
'blogs' => Blog::all()
]);
}
我想說的是,如果在thum中有一個新文件bnail然後創建一個獨特的名字,移動文件並將'縮略圖'設置爲該名稱(這就是我的創建函數的工作方式),但是如果沒有上傳文件到'縮略圖',則將'縮略圖'設置爲舊名稱。
有沒有更好的方法來處理這個過程?很明顯,因爲這種方式不起作用。我只是在學習Laravel,我有三本書,但沒有一本介紹如何做到這一點。
謝謝。
謝謝,我按照你的建議,並更新了上面的代碼來匹配。照片現在可以正常工作,但如果進行了更改,則兩個文本字段不會立即更新。 –
在您創建模型之後(在'$ blog = Blog :: find($ id);'之後)並在保存模型之前,您將musst分配給它們。只要做'$ blog-> mytextindb = Input :: get('mytextfield')' – thpl
非常好,謝謝。現在我明白了。這整個MVC的東西很酷,但有時會令人困惑。 –