问题描述
我正在创建一个CRUD应用程序。但是,当我在方法存储区中编写代码时,我遇到了一个问题:我正在尝试创建变量
$contact = new Contact()
。消息:Undefined type 'App\Contact'
。
此ContactController.PHP
use App\Contact;
....
public function store(Request $request)
{
$request->validate([
'first_name'=>'required','last_name'=>'required','email'=>'required'
]);
$contact = new Contact([
'first_name' => $request->get('first_name'),'last_name' => $request->get('last_name'),'email' => $request->get('email'),'job_title' => $request->get('job_title'),'city' => $request->get('city'),'country' => $request->get('country')
]);
$contact->save();
return redirect('/contacts')->with('success','Contact saved!');
}
我是通过以下链接实现的:https://medium.com/techiediaries-com/laravel-7-crud-tutorial-build-a-crud-app-with-mysql-and-bootstrap-4-4ed8e94f2db0
解决方法
以下是您创建的选项:
选项1:
$contact = Contact::create([
'first_name' => $request->get('first_name')
]);
选项2:
$contact = new Contact();
$contact->first_name = 'test';
$contact->save();
还要在您的联系人类中,检查您的名称空间。并且,将控制器中的名称空间用作:
,使用App \ Models \ Contact; //因为您说的contact.php位于models文件夹内
您可以使用它使控制器简单干净
use App\Contact; // if use laravel 7
use App\Models\Contact // if use laravel 8
....
public function store(Request $request,Contact $contact)
{
$request->validate([
'first_name'=>'required','last_name'=>'required','email'=>'required'
]);
$contact->create($request->all());
return redirect('/contacts')->with('success','Contact saved!');
}
功能更新中
use App\Contact;
....
public function update(Request $request,Contact $contact)
{
$id = $contact->id; // if use Route resource
$id = $request->id; // if use Route Post
$request->validate([
'first_name'=> 'required','email'=>'required'
]);
$date = $request->except(['_token','_method']);
$contact->where('id',$id)->update($date);
return redirect('/contacts')->with('success','Contact updated!');
}