首页 > 解决方案 > Laravel Modelname:find($id) 还是 ModelName::findorFail($id)?

问题描述

嗨,我刚开始使用 Laravel,正在浏览一些教程,但遇到了一些问题:这是我的控制器和模型:

namespace App\Http\Controllers;

use App\Message;
use Illuminate\Http\Request;

class MessageController extends Controller
{
  public function create(Request $request)
  {
    $message=new Message();
    $message->col1=$request->col1;
    $message->col2=$request->col2;
    $message->save();
    return redirect('/home');
  }
  public function vewrec($id)
  {
    $message=Message::findOrFail($id);
    return view('record',['message'=>$message]);
  }
}

和型号代码:

  namespace App;

  use Illuminate\Database\Eloquent\Model;

  class Message extends Model
  {
    protected$fillable=['col1','col2'];
  }

我应该在模型(消息)中添加一些东西(方法)来查找 id 吗?如果可能的话,我可以要求这种从数据库中提取数据并检查 ID 的方法吗?返回 null 还是将一条记录作为数组的元素返回?

标签: databaselaravelmodel

解决方案


代码很好,但在模型中:

protected$fillable=['col1','col2'];

只需将其修复为:

protected $fillable=['col1', 'col2'];

至于公共函数vewrec($id),它可以返回错误或返回一个元素。也许如果您不想出现错误,请使用 Model::find($id)。希望能帮助到你。


推荐阅读