0

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.

Community
  • 1
  • 1

0 Answers0