sqlexception будет выполняться при возникновении ошибки во время выполнения запроса, и sqlwarning будет выполняться, когда в MySQL хранится какое-либо предупреждение Процедура. Давайте посмотрим, как мы можем иметь этот блок в Хранимой процедуре.
DELIMITER $$
CREATE PROCEDURE `transaction_sp` ()
BEGIN
DECLARE exit handler for sqlexception
BEGIN
-- ERROR
ROLLBACK;
END;
DECLARE exit handler for sqlwarning
BEGIN
-- WARNING
ROLLBACK;
END;
START TRANSACTION;
INSERT INTO table_name (id, name, address) values ('1','Avinash','xpertdeveloper.com');
UPDATE second_table set name="xyz" where id=4;
COMMIT;
END
$$
$user_detail=new Profile;
$request->all()
и Mass Assignment
в Laravel. удалить строку,
$user_detail=new Profile;
и в строке,
$user_detail = Profile::find($id);
здесь вы не можете сделать это так. Вы должны сделать что-то вроде этого
$user_detail = Profile::where('user_id','=',$id)->first();
, тогда ваш код должен выглядеть так,
public function update(Request $request, $id)
{
// $this->validate($request,[
// 'title'=>'required',
// 'body'=>'required',
// ]);
//$user=new User;
$user = User::find($id);
$user->student_no=$request->input('student_no');
$user->email=$request->input('email');
$user->save();
$user_detail = Profile::where('user_id','=',$id)->first();
$user_detail->student_no=$request->input('student_no');
$user_detail->profile_pic=$request->input('CID');
$user_detail->CID=$request->input('CID');
$user_detail->DOB=$request->input('DOB');
$user_detail->mobile_no=$request->input('mobile_no');
$user_detail->joining_year=$request->input('joining_year');
$user_detail->graduation_year=$request->input('graduation_year');
$user_detail->program_id=$request->input('programe_id');
$user_detail->work_experience=$request->input('work_experience');
$user_detail->save();
return redirect('/dashboard')->with('success','Post Updated');
Вы должны удалить строку $user_detail=new Profile;
и обновить строку $user_detail = Profile::find($id);
следующим образом
$user_detail = Profile::where('user_id',$id)->first()
Есть две три вещи с вашим запросом.
$user_detail=new Profile;
$user_detail = Profile::find($id);
прежде всего не нужно новый профиль линия. Он только что создал новый объект, но вам не нужно это, так как вы собираетесь обновить профиль кого-то, теперь напечатайте ваш ответ второй строки, если вы получаете какой-либо ответ от него, а также он правильный, потому что ваш идентификатор поиска не user_id. в противном случае с этим проблем нет. надеюсь, вы найдете решение в этом.
$ user_detail = Profile :: find ($ id); в этой строке вы проверяете данные профиля с помощью первичного ключа таблицы профилей, который может не существовать
Вы можете попробовать с помощью
$user_detail = Profile::where('user_id',$id)->first();
user_id is the fk on profiles table from user id.