私は次のコードを持っています、
私の質問は、リクエスト値を変更する方法ですか?
public function store(CategoryRequest $request)
{
try {
$request['slug'] = str_slug($request['name'], '_');
if ($request->file('image')->isValid()) {
$file = $request->file('image');
$destinationPath = public_path('images/category_images');
$fileName = str_random('16') . '.' . $file->getClientOriginalExtension();
$request->image = $fileName;
echo $request['image'];
$file->move($destinationPath, $fileName);
Category::create($request->all());
return redirect('category');
}
} catch (FileException $exception) {
throw $exception;
}
}
だが、
各リクエストでの出力
echo $request['image'];
/ tmp/phpDPTsInのようなテキストを出力します
_$request
_オブジェクトでmerge()
メソッドを使用できます。参照: https://laravel.com/api/5.2/Illuminate/Http/Request.html#method_merge
コードでは、次のようになります。
_public function store(CategoryRequest $request)
{
try {
$request['slug'] = str_slug($request['name'], '_');
if ($request->file('image')->isValid()) {
$file = $request->file('image');
$destinationPath = public_path('images/category_images');
$fileName = str_random('16') . '.' . $file->getClientOriginalExtension();
$request->merge([ 'image' => $fileName ]);
echo $request['image'];
$file->move($destinationPath, $fileName);
Category::create($request->all());
return redirect('category');
}
} catch (FileException $exception) {
throw $exception;
}
}
_
メソッド名にもかかわらず、値やそのようなものを連結するのではなく、パラメーターのキーで指定されたメンバー名に関連付けられた値を実際に置き換えます。
を使用して新しいファイル名を設定しています
_$request->image = ...
_
ただし、Request
クラスの配列アクセス可能なインターフェイスを使用して取得しています。
を使用してファイル名を設定してみてください
_$request['file'] = ...
_
または、Request
クラスのmerge()
メソッドを使用します。