程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

Model in variable giving unexpected '::'

发布于2023-05-25 21:18     阅读(1041)     评论(0)     点赞(27)     收藏(4)


So I was wondering how can we access a model which is placed in a variable

Controller :

use App\Models\Test;
use App\Models\Owner;
class mainController extends Controller {

    public function __construct()
    {
       $this->home = new MainHelper();
    }

mainHelper.php :

class MainHelper {
    var $test       = 'App\Models\Test';
    ...
    public static function listTesting(){
        $data = $this->test::where('icons_status', '=', 'active')->orderBy('created_at', 'desc')->take(5)->get();
        return $data;
    }

Test.php

<?php
namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Test extends Model
{
    protected $table = 'test';
    protected $primaryKey = "id";
    protected $guarded = array('id');
    public $timestamps  = false;
}

But I get this error

Parse error: syntax error, unexpected '::' (T_PAAMAYIM_NEKUDOTAYIM) in C:\xampp\htdocs\laravel\app\Helpers\MainHelper.php on line 34

Or am I doing it wrong? I'm trying to find a way without using use App\Model\Test


解决方案


First of all, why do you want to assign a model into a variable?, Second of all, in this line:

var $test       = 'App\Models\Test';

you are assigning a String, not a Model, so obviously is not going to work as you expected.

What you can do is:

var $test       = new App\Models\Test;

and then use

var $test->where(....)

or do it in the same instruction:

$data = App\Models\Test::where('icons_status', '=', 'active')->orderBy('created_at', 'desc')->take(5)->get();
return $data;


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.phpheidong.com/blog/article/546122/325c646f103367a9cd35/

来源:php黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

27 0
收藏该文
已收藏

评论内容:(最多支持255个字符)