Issue
The below code shows the error TypeError: Argument 1 passed to App\Http\Controllers\StudentLearningController::update() must be an instance of Illuminate\Http\Request, array given
use Illuminate\Http\Request;
class StudentLearningController extends Controller{
 public function abc(){
    $myCourseData['points'] = "1";                 
     $myCourseData['totalPoints'] = "2";
    
    $this->update($myCourseData,$myCourseId);
  }
}
i wanted to pass 2 parameters: points & totalPoints from function abc() to the function update() and access points in update() as $request->points;.How can i do that? Only points & totalPoints are passed from the above function , other params in the update() function input are getting updated from some other function.
 use Illuminate\Http\Request;
trait MyCourseTrait{
function update($request,$id){
 $validator = Validator::make(
            $request->all(),
            [
                'course_id'       => 'nullable|integer',  
                'exam_numbers'    => 'nullable|integer',
                'points'          => 'nullable|integer', 
                'subscription' => 'nullable|boolean',
                'totalPoints'=>'nullable|integer'
            ]
        );     
$points =  $request->points;
 }    
}    
I know, the above given error is produced becoz am passing an array to the input of update() function .But i can't simply do it as
$points="1";
$totlaPoints="2";
$this->update($points,$totlaPoints,$myCourseId);
becoz the update() function in MyCourseTrait can't have more than 2 params : $request & $id , as this function is used in some other cases in my project , where only 2 params are provided. This is the actual issue am facing.
Solution
You are passing an array to the first argument of the update function which I guess should be an instance of Request
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
    class DashboardController extends Controller
    {
        public function abc(){
            $myCourseData = new Request(["points" => "1"]);
            $myCourseId = 5;
    
            $this->update($myCourseData,$myCourseId);
        }
    
        public function update(Request $request, $id){
            $points =  $request->points;
            dd($points);
        }
    }
                        
                        Answered By - Iamshriyogi
0 Comments:
Post a Comment
Note: Only a member of this blog may post a comment.