【问题标题】:Specify DB table in laravel query在 laravel 查询中指定数据库表
【发布时间】:2020-08-28 10:23:38
【问题描述】:

我是 laravel 的新手,我正在尝试查询我的数据库中的特定表。我只有 1 个数据表和标准用户身份验证表。我收到一个错误:BadMethodCallException 调用未定义的方法 App\Figures::table()。

型号

namespace App;

use Illuminate\Database\Eloquent\Model;

class Figures extends Model
{
   
}

控制器

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Figures;

class figuresController extends Controller
    public function figurespag2() {
        $dummyDetails = Figures::table('figures')->where('name', 'batman');
        return view ( 'pagination2.index' )->withUsers($dummyDetails);
       }

路线

Route::get ( '/pagination2', 'figuresController@figurespag2' );

我知道这会很明显,但我对此并不陌生。

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    这是错误的

    $dummyDetails = Figures::table('figures')->where('name', 'batman');

    方法1---------- laravel eloquent

    型号

    namespace App;
    
    use Illuminate\Database\Eloquent\Model;
    
    class Figures extends Model
    {
       protected $table = 'figures';
    }
    

    控制器

      $dummyDetails = Figures::where('name', 'batman')->get();
    

    方法2 ---------- laravel Query Builder

      $dummyDetails = \DB::table('figures')->where('name', 'batman')->get();
    

    【讨论】:

    • 谢谢,这成功了。我需要更多地查看模型,因为我认为模型定义了我可以看到的数据库级交互是错误的。
    【解决方案2】:

    使用这个你不需要定义表名

     public function figurespag2() {
            $dummyDetails = Figures::where('name', 'batman')->get();
            return view ( 'pagination2.index' )->withUsers($dummyDetails);
           }
    

    【讨论】:

    • 感谢您的解释,它帮助我理解了模型与查询和控制器的关系。谢谢。
    【解决方案3】:

    首先你可能需要了解 laravel 模型规则。

    如果您创建像“figures”(复数)这样的表名,则需要通过Figure(单数)创建其模型。

    如果您创建的表不是这条规则,那么您必须像这样在模型中提及表名。
    受保护的 $table = "table_name";

    您可以像这样在控制器中使用 where 条件访问表。

      public function figurespag2() {
        $dummyDetails = Figure::where('name', 'batman')->get();
        return view ( 'pagination2.index' )->withUsers($dummyDetails);
       }
    

    希望对您有所帮助。

    【讨论】:

    • 感谢您的补充说明。我是 Laravel 的新手,并且已经习惯了 MVC 方法。
    猜你喜欢
    • 2020-06-06
    • 2014-06-04
    • 2017-05-11
    • 1970-01-01
    • 2018-07-07
    • 2021-05-09
    • 1970-01-01
    • 2017-08-22
    相关资源
    最近更新 更多