我被困了.. 我想添加以通过表单添加新照片的可能性。 我正确设置了Photo资源。 表格照片包括:id,title,caption,path:string。
这是我在视图photo.create中创建的表单:
{{ Form::open(array('route' => 'photos.store'),'image/save', array('files'=> true)) }}
{{ Form::label('title', 'Title: ') }}
{{ Form::text('title') }}
{{ Form::label('caption', 'Caption: ') }}
{{ Form::textarea('caption') }} <br>
{{ Form::submit('Add Photo', array('class' => 'btn btn-primary' )) }}
{{ Form::close() }}
如何通过选择新文件添加按钮?
谢谢!
编辑:
这是我到目前为止所做的简单存储方法:
public function store()
{
$input = Input::all();
$rules = array('title' => 'required', 'path' => 'required');
$validation = Validator::make($input, $rules);
if ($validation->passes())
{
$photo = new Photo();
$photo->title = $input['title'];
$photo->caption = $input['caption'];
$photo->path = $input['path'];
$photo->save();
return Redirect::route('photos.index');
}
return Redirect::back()->withInput()->withErrors($validation)->with('message','There were validation message');
}
如何正确地将那个实现放在检索文件并存储在public / img的文件夹中? 然后,我如何保存该路径并放入$ photo-&gt;路径?
非常感谢!!
答案 0 :(得分:7)
使用Form::file('image')
然后,您可以使用Input::file('image')
检索上传的文件,并将其移至Input::file('file')->move(YOUR_DESTINATION_PATH);
参考文献:http://laravel.com/docs/requests#files和http://laravel.com/docs/html#file-input
编辑
将上传的文件存储到public/img
:Input::file('file')->move(base_path() . '/public/img');
在数据库中存储路径:
$photo->path = base_path() . '/public/img' . Input::file('file')->getClientOriginalName(); // if you want your real path on harddrive
或
$photo->path = URL::to('img/' . Input::file('file')->getClientOriginalName()); // if you want an exploitable path for http render
第二次修改 在表单http://paste.laravel.com/KX9
上查看我的更正@extends('master')
@section('blog')
<div class="span12 well">
{{ link_to_route('photos.index', 'Back to index') }}
</div>
<div class="span12 well">
{{ Form::open(array('route' => 'photos.store', 'files'=> true)) }}
{{ Form::label('title', 'Title: ') }}
{{ Form::text('title') }}
{{ Form::label('caption', 'Caption: ') }}
{{ Form::textarea('caption') }}
{{ Form::label('image', 'Image: ') }}
{{ Form::file('image') }}
<br>
{{ Form::submit('Add Photo', array('class' => 'btn btn-primary' )) }}
{{ Form::close() }}
<br><br>
@if($errors->any())
{{ implode('', $errors->all('<li class="error">:message</li>')) }}
@endif
</div>
@stop
答案 1 :(得分:0)
您可以使用Form::file('image');
答案 2 :(得分:0)
$('.emoji').replaceWith(function() {
return $(this).data('uni-val');
});
步骤2:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img data-uni-val="😃" src="path/to/img1.png" class="emoji"/>hello,
<br /> <img data-uni-val="😄" src="path/to/img2.png" class="emoji"/>
最后一步:
{{ Form::open(array('action' => 'HomeController@upload', 'files'=>true)) }}
{{ Form::label('image', 'Upload Image')}}
{{ Form::file('image') }}
{{ Form::submit('Submit') }}
{{ Form::close() }}