Basic Information
I'm developing a simple Web application using Laravel6.0.
Error Message
syntax error, unexpected '$this'(T_VARIABLE)
My Codes
app/Http/Controllers/ProfileController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\stories;
use App\History;
use App\Posts;
use App\Profile;
use Carbon\Carbon;
use Storage;
class ProfileController extends Controller
{
public function index(Request $request)
{
$plus = Posts::all();
return view('stories.index2', compact('plus'));
}
public function upload(Request $request)
{
$this->validate($request, [
'file' => [
'required',
'file',
'image',
'mimes:jpeg,png',
]
]);
if ($request->file('file')->isValid([])) {
$path = $request->file->store('public');
return view('stories.index2')->with(compact('filename','plus'));
} else {
return redirect()
->back()
->withInput()
->withErrors();
}
}
public function store(Request $request)
{
$d = new \DateTime();
$d->setTimeZone(new \DateTimeZone('Asia/Tokyo'));
$dir = $d->format('Y/m');
$path = sprintf('public/posts/%s', $dir);
$data = $request->except('_token');
foreach ($data['plus'] as $k => $v) {
$filename = '';
$posts = Posts::take(1)->orderBy('id', 'desc')->get();
foreach ($posts as $post) {
$filename = $post->id + 1 . '_' . $v->getClientOriginalName();
}
unset($post);
if ($filename == false) {
$filename = 1 . '_' . $v->getClientOriginalName();
}
$v->storeAs($path, $filename);
$post_data = [
'path' => sprintf('posts/%s/', $dir),
'name' => $filename
];
$a = new Posts();
$a->fill($post_data)->save();
}
unset($k, $v);
return redirect('/');
}
public function create(Request $request)
{
$this -> validate($request, Profile::$rules);
$profile = new Profile;
$form = $request->all();
if (isset($form['image'])) {
$path = $request->file('image')->store('public/image');
$profile->image_path = basename($path);
} else {
$profile->image_path = null;
}
unset($form['_token']);
unset($form['image']);
$profile->fill($form);
$profile->save();
return redirect('/');
}
public function add()
{
return view('profile.create2');
}
public function edit()
{
return view('profile.edit');
}
}
app/Profile.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Profile extends Model
{
public static $rules = array(
'title' => 'required',
'body' => 'required',
);
}
What I tried.
I tried this code,
~
$request -> validate(Profile::$rules);
~
also, this code
~
$request -> validate([Profile::$rules]);
~
and this one,
~
$request -> validate([
'title' => 'required',
'body' => 'required',
]);
~
When I developed an application using Laravel 5.8.35, there were nothing wrong with this code. Is it cause of the laravel version? or is it simply wrong my codes? please help me.