Laravel Error Collection Missing argument 1 for App\Http\Controllers\JobController::getUpdate()

This is a very common Error we made while declaring route and passing value to the controller here is an example how do we face this type of error I have a form to update so I must declare routes t…

Source: Laravel Error Collection Missing argument 1 for App\Http\Controllers\JobController::getUpdate()

Laravel Error Collection Missing argument 1 for App\Http\Controllers\JobController::getUpdate()

This is a very common Error we made while declaring route and passing value to the controller

here is an example how do we face this type of error

I have a form to update so I must declare routes to get the edit page and another for update (if we don’t use route resource)

like   Route::get(‘/update/{job_id}/’,[
‘uses’=>’JobController@getUpdate’,
‘as’=>’admin.update’
]);
Route::post(‘/update’,[
‘uses’=>’JobController@postUpdate’,
‘as’=>’admin.updatejob’
]);

Now Look at the first route I am sending a parameter (job_id)  to the controller JobController . and the error occurs when we don’t pass this value.

like   Route::get(‘/update’,[
‘uses’=>’JobController@getUpdate’,
‘as’=>’admin.update’
]);

Now have a look at the method why I have to pass this id

public function getUpdate($job_id){
$jobUpdate = Job::find($job_id);
//dd($jobUpdate);
$Updatecategories = Category::all();
return view(‘admin.update_job’,[‘Updatecategories’=>$Updatecategories,’jobUpdate’=>$jobUpdate]);
}

here is the update method for updating a single post.To get the exact post that user clicked we must have to pass the id of that post and as the method argue for a parameter this error occurs while executing this methode.

so to get ride of from this error just pass a parameter(id) at route  .

If u want to know how to pass id from the list of posts to edit follow the previous post

Prime number for beginner

প্রাইম নাম্বার এর লজিক বুঝানোর জন্য প্রথমে একটু বলে নিই প্রাইম নাম্বার আসলে কি
প্রাইম নাম্বার হল ওইসকল নাম্বার যাদেরকে কেবল নিজেদের দিয়ে ভাগ করা যায় অন্য কোন নাম্বার দিয়ে ওনারা বিভাজ্য নয়
প্রাইম নাম্বার এর লজিক টা এখানে ই ।
একটা প্রোগ্রাম করেই দেখাই
‪#‎include‬<stdio.h>

main()
{
int n, c = 2;

printf(“Enter a number to check if it is prime\n”);
scanf(“%d”,&n);

for ( c = 2 ; c <= n-1 ; c++ )
{
if ( n%c == 0 )
{
printf(“%d is not prime.\n”, n);
break;
}
}
if ( c == n )
printf(“%d is prime.\n”, n);

return 0;
}
এখানে বোঝার বিষয় শুধু লোপটা
একটা উদাহারন দিয়ে বোঝাচ্ছি
আমি নাম্বার হিসাবে নিলাম ৫
মানে n=5
লোপ চলবে ৪ পর্যন্ত ( ৫ কে ৫ দিয়ে ভাগ করা যায় )
যখন c=২ নিয়ে লোপএ ঢুকল
প্রথম if condition এর মধ্যে সে check করে দেখবে যে নাম্বারটা আসলে কোন নাম্বার দিয়ে ভাগ যায় কিনা ; যদি যায় তাহলে printf(“%d is not prime.\n”, n); print করে প্রোগ্রাম শেষ করে দিবে ।
যদি নাম্বারটা কোন নাম্বার দিয়ে ভাগ না যায় এবং ২য় if condition পর্যন্ত যায় তাহলে সেটা প্রাইম নাম্বার

Why we use *(int*) or *(float*) or *(double*) while casting void pointer instead of *(int) or *(float) or *(double);

আমরা যখন কোন variable এর pointer declare করি তখন সেটা ওই variable এর ডাটা টাইপকে hold করে ; মানে আমরা যদি integer টাইপ এর variable এর pointer বানাই তাহলে এর মধ্যে integer type এর data hold করবে .

এখন আসাযাক void pointer এ ..
আমরা যখন কোন pointer কে void pointer হিসাবে declare করি তখন এটা কোন ডাটা টাইপ কে নির্দিষ্ট করে না । মানে এর মধ্যে নির্দিষ্ট কোন টাইপ এর ডাটা hold করবে না । যেমন
void * ptr;
int a=100;
ptr=&a;
এখানে আমরা যদি a কে প্রিন্ট করতে যাই তাহলে
printf(“%d”,*ptr); এভাবে লিখতাম । কিন্তু এক্ষেত্রে error দেখাবে
কারন আমরা জানি void এর fixed data type নাই ,
এই জন্য একে টাইপ কাস্ট করে তার পর প্রিন্ট করতে হবে
তার মানে হল void pointer কে প্রথমে যেকোন একটা টাইপ এ কাস্ট করে তার পর প্রিন্ট করতে হবে । আর আর জন্যই একটা * বেশি দিতে হয় ,
আর এটা হল void pointer type casting এর syntax
*(ডাটা টাইপ *) ভেরিয়াবল
integer আর ক্ষেত্রে ,
*(int*) ptr;

Redirect a page in PHP using header

পিএইচপিতে কাজ করার সময় পেজ কে  redirect করা লাগে সবাই জানি । এখন কোন কোন ক্ষেত্রে আমরা যেভাবে redirect  করার জন্য লিখি সেটা কাজ করেনা । কেন করেনা অ্যান্ড কিভাবে করতে হবে সেটা দেখা যাক …

কোন পেজ কে redirect korar code

heder(‘Location:index.php’) (এখানে পেজ এর নাম যেখানে আমি redirect করতে চাচ্ছি) index.php is a sample .. ।

কিন্তু কোন কোন ক্ষেত্রে এটা কাজ করেনা । যেকারনে কাজকরেনা সেটা হল  এই header কে সবসময় সবার উপরে অ্যাড করতে হয় আর আগে কোন স্পেস বা অন্য কিছু থাকলে সেটা কাজ করবে না ।

এটা ভিন্ন আর একটা উপায় আছে , সেটা হল output buffering on করে রাখা output buffering on করে রাখলে যেখানে খুশি আর যত ইচ্ছা স্পেস দিলে ও সমস্যা নাই redirection কাজ করবে ।

কিভাবে করতে হবে ,এই output buffering on করার ২ টা way আছে । একটা হল php.ini file এ গিয়ে output buffering on  করে দেউয়া । আর একটা হল প্রত্তকে পেজ এ

<?php ob_start();?> এই কোডটা লিখতে হবে

আর off করার জন্য নিচের কোড

<?php ob_end_flush();?

Armstrong Number

নাম্বার থিওরিতে কত যে মজার মজার নাম্বার আছে …! আজ এমনই একটা মজার নাম্বার নিয়ে আলোচনা করব

আর্মস্ট্রং নাম্বার

আর্মস্ট্রং নাম্বার হল এমন একটি নাম্বার যে নাম্বার এর প্রত্যেকটা আলদা আলাদা নাম্বার ঘনের (cube)যোগফল ওই নাম্বার । একটা সহজ উদাহারন দেই ৩৭১ স্বাভাবিক একটা সংখ্যা । এর প্রত্যেকটা ডিজিটকে আলাদা ঘন করে যোগ করলে কি দারায়

3^3=27

7^3=343

1^3=1

তাহলে ২৭+৩৪৩+১ সমান দ্বারায় ৩৭১ তার মানে এটা একটা আর্মস্ট্রং নাম্বার ।

এখন দেখাযাক এটার কোড কিভাবে করতে হবে

#include<stdio.h>
int main()
{
int NumberTocheck,temp,remainder,sum=0;

printf(“Enter a number to check\n”);
scanf(“%d”,&NumberTocheck);
temp=NumberTocheck;
while(temp!=0){

remainder=temp%10;
int cube=remainder*remainder*remainder;
sum=sum+cube;
temp=temp/10;

}
if(sum==NumberTocheck)
printf(“Armstrong Number”);
else
printf(“Not Armstrong Number “);
}

এই হল আর্মস্ট্রং নাম্বার চেক করার প্রোগ্রাম

কোডটা কিভাবে কাজ করে ?

প্রথমে যে নাম্বারটাকে চেক করব সেটা নিতে হবে ।এটাকে নিয়ে কাজ করার জন্য একটা টেম্পোরারি ভারিয়াবল এ রাখতে হবে

পরে একটা লুপ চালাতে হবে  । এখন দেখাযাক লুপের ভিতরে আসলে কি কাজ হয় (আসল কাজটা ত  লুপের ভিতরেই হয় )

প্রথমে নাম্বারটাকে ১০ দিয়ে ভাগকরে ভাগশেষ বের করেনিলাম (প্রত্যেকটা আলাদা নাম্বার এর ঘন বের করার জন্য )

পরে প্রত্যেকটা নাম্বার এর ঘন বের করে পূর্বেরটার সাথে যোগ করতে হবে (sum=sum+cube)।

সম্পূর্ণ প্রক্রিয়াটা নিচে দেয়া হল ( বর্ণনার সুবিধার্থে একটা আর্মস্ট্রং নাম্বারকে ধরে করলাম )

ধাপ ১ঃ

remainder=371%10= 1

cube=1*1*1=1

sum=0+1=1

temp=371/10=37

ধাপ ২ঃ

remainder=37%10= 7

cube=7*7*7=343

sum=1+343=344

temp=37/10=3

ধাপ ৩ঃ 

remainder=3%10= 3

cube=3*3*3=27

sum=344+27=371

temp=3/10=0

ধাপ ৩ এর পর temp=0 তাই লুপ শেষ হয়ে যাবে

পরে if condition এ এসে জাচাই করবে নাম্বার গুলোর যোগফল ইনপুট নাম্বার এর সমান কি না ?

যদি সমান হয় তাহলে নাম্বার টা আর্মস্ট্রং নাম্বার অথবা আর্মস্ট্রং নয়

 

A program to find who take the same subject (relation between Variables )

 

এখন একটা প্রোগ্রাম করব যেটা দ্বারা একি সাবজেক্ট কয় জনের আছে অথবা এক জনে কয়টা সাবজেক্ট নিয়েছে সেটা  check  করতে পারব

আর জন্য  প্রথমে একটা নতুন  ফাইল  নিয়ে নিচের মত কোড লিখতে হবে ; এটা হল প্রোগ্রামের knowledge (নিজের ইচ্ছা মত লিখলে ও সমস্যা নাই )

studies(111201,jems,cse117).
studies(111201,jems,cse118).
studies(111201,jems,cse119).
studies(111202,jhon,cse118).
studies(111203,jack,cse117).
studies(111204,jerry,cse117).

এখন console window তে গিয়ে check করব কয়জনে একি সাবজেক্ট নিল

?- studies(ID,NAME,cse117).(প্রথমে এই লাইন টা লিখে এন্টার দিলে )
ID = 111201,
NAME = jems ;(এই টুকু আসবে এবার সেমিকোলন (;) প্রেস করলে নিচের মত করে ইনফর্মেশন আসতে থাকবে)
ID = 111203,
NAME = jack ;
ID = 111204,
NAME = jerry.

এখানে IDএবং  NAME হল variable .

now mane এখন check করব এক জনে কয়টা সাবজেক্ট নিয়েছে

studies(111201,jems,JEMS).
JEMS = cse117 ;
JEMS = cse118 ;
JEMS = cse119.

ID আর নাম ঠিক রেখে সাবজেক্ট টা variable(JEMS)  করে দিলাম যেন বের করতে পারি JEMS সাহেব কয়তা সাবজেক্ট নিয়েছেন । এন্টার প্রেস করলে প্রথমে একটা সাবজেক্ট কোড দেখাবে সেমিকোলন প্রেস করতে থাকলে মোট সবগুলু সাবজেক্ট দেখাবে ।

 

A program to Change Temperature (Celsius to Fahrenheit and Fahrenheit to Celsius)

Celsius to Fahrenheit অথবা   Fahrenheit to Celsius পরিবর্তনের জন্য তেমন কিছুই করা লাগবে না শুধু মাত্র function create করতে পারলে ই হবে আর পরিবর্তন করার সুত্র গুলু মনে থাকলে ই হবে ।

তাহলে দেখাযাক কিভাবে করতে হয় ?

ctof(C,F):-
F is ((1.8*C)+32).
ftoc(F,C):-
C is ((F-32)*(5/9)).

ctof এবং ftoc  নামের ২ টা function create করলাম প্রথম্রাত কাজ হল সেলসিয়াস থেকে ফারেনহাইট এ পরিবর্তন করে দিবে পরের টা উল্টা

এখন console window তে নিচের মত  করে লিখতে হবে

ctof(40,F).
F = 104.0.(মানে ৪০ ডিগ্রি সেলসিয়াস সমান ১০৪.০ ফারেনহাইট )

14 ?- ctof(-50,F).
F = -58.0.

একি ভাবে

ftoc(32,C).(মানে ৩২ডিগ্রি ফারেনহাইট  সমান ০ সেলসিয়াস  )
C = 0.0.

23 ?- ftoc(25,C).
C = -3.8888888888888893.

24 ?- ftoc(0,C)
| .
C = -17.77777777777778.

Arithmetic in Prolog

prolog  এ addition subtraction  কিভাবে করতেহয় ??

অনেক সহজ

শুধু লিখলে ই হবে নিচের লাইন গুলু

Adding two number

? X is 5+6.

X=11.

? 4 is 2+2.

true  (2টা নাম্বার এর যোগফল ঠিক আচে কিনা সেটা দেখার জন্য )

একি ভাবে subtraction multiplication division ও করা যায়

এখন আসা যাক নিজে function create করে কিভাবে অ্যাড করা যায়

add(X,Y,A):-
A is X+Y.

একটা function create করে ৩ টা variable নেউয়া হয়েছে প্রথম ২ টা Augment হিসাবে অ্যান্ড শেষের টা নাম্বার গুলু যোগ করে রাখার জন্য

এখন console window তে  গিয়ে নিচের মত করে লিখতে হবে

add(3,8,A).
A = 11.

11 ?- add(9,8,A).
A = 17.

 

 

 

Prolog number comparison

prolog a number ২ টা নাম্বার  compare করতে হয় যেভাবে direct checking on the console window ? ?- 3>5. false. ?- 4>2 true. এবার আসা যাক নিজে function create করে কিভাবে check করা যায় । isbigger(A,B):-(এরকম একটা function create করতে হবে এবং নিচের মত করে condition দিতে হবে ) A>B ->true; false . এখানে আমি যদি console window তে ?isbigger(3,4) দেই তাহলে দেখাবে false কারন A=3  B=4 এর ছেয়ে ছোট আর আমরা function  এ বলে দিয়েছি প্রথম নাম্বার টা বড় হলে true দেখাবে অনন্যতায় false  । আর এক ভাবে করা যায় isbigger(A,B):- A is max(A,B). এখানে A max হলে true print করবে এখন একটা নাম্বার ছোট কিনা টা একি ভাবে check করা যায় min() use করে । issmaller(A,B):- A is min(A,B).