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.
 
    