ErrorException: Đang cố lấy thuộc tính 'id' của đối tượng không

Đây là mô hình người dùng

 'int'
	];

	protected $dates = [
		'last_login'
	];

	protected $hidden = [
		'password',
		'remember_token'
	];

	protected $fillable = [
		'user_type',
		'username',
		'password',
		'last_login',
		'remember_token',
		'settings'
	];
	public function toString()
	{
		return "hello";
	}

	public function customer()
	{
		return $this->hasOne('App\Models\Customer');
	}

	public function merchant()
	{
		return $this->hasOne('App\Models\Merchant');
	}

	public function admin(){

		return $this->hasOne('App\Models\Admin');
	}

 

	
}

Đây là Mô hình thương gia

 'int',
		'status' => 'int'
	];

	protected $fillable = [
		'user_id',
		'store_name',
		'store_name_url',
		'title',
		'firstname',
		'lastname',
		'bvn_mobile_no',
		'street',
		'city',
		'state',
		'country',
		'status'
	];

	public function user(){

		return $this->belongsTo('App\Models\User');
	}

	public function name(){
		return $this->firstname . ' ' . $this->lastname;
	}
    
    public function service(){
    	return $this->hasMany('App\Models\Service');
    }
}

Bảng thương gia có cột user_id và mô hình trên xác định mối quan hệ

Lưu ý. Chỉ số không xác định. đăng trong /var/www/vhosts/XXXX/wp-content/plugins/Modern-footnotes/Modern-footnotes. php trên dòng 269

Lưu ý. Cố gắng lấy thuộc tính 'ID' của đối tượng không phải trong /var/www/vhosts/XXXX/wp-content/plugins/Modern-footnotes/Modern-footnotes. php trên dòng 269

Đang xem 5 trả lời - 1 đến 5 (trong tổng số 5)

  • Người bắt đầu chủ đề Người tư vấn

    (@tư vấn)

    FYI trong dòng 269 được nêu

    trả lại 'bài_'. $GLOBALS[‘post’]->ID;

    Tác giả plugin prismtechstudios

    (@prismtechstudios)

    Xin chào @consultant,

    Cảm ơn đã chỉ ra điều này. Tôi vừa phát hành bản cập nhật cho plugin sẽ khắc phục sự cố này

    Người bắt đầu chủ đề Người tư vấn

    (@tư vấn)

    Tuyệt vời cảm ơn bạn

    kdetmold

    (@basti743)

    Xin chào @prismtechstudios, tôi đã và vẫn gặp lỗi tương tự

    Lưu ý. Cố gắng lấy thuộc tính 'ID' của đối tượng không phải trong […]/wp-content/plugins/Modern-footnotes/Modern-footnotes. php trên dòng 267

    Tôi đã khắc phục sự cố này trong mã bằng cách thêm isset($GLOBALS['post']) vào phần đầu nếu. Vui lòng kiểm tra xem đây có phải là bản sửa lỗi hợp lệ không và thêm nó vào cơ sở mã của bạn

    Nếu bạn làm việc với hoặc lặp trong laravel (for, foreach, v.v. ) hiển thị quyền truy cập dữ liệu để nhận thuộc tính try to get của laravel không phải đối tượng hoặc bất kỳ loại mối quan hệ nào như (một đến nhiều, nhiều đến nhiều, v.v. ), điều này có thể có nghĩa là một trong các truy vấn Cơ sở dữ liệu đang trả về biến dữ liệu null hoặc thành viên mối quan hệ null laravel 5/6/7

    Truy vấn của bạn có trả về mảng hoặc đối tượng không?

    Thông báo PHP. Cố gắng lấy thuộc tính của phi đối tượng xuất hiện khi mã của bạn cố gắng truy cập một biến không phải là loại

    php
    $user = [
        "name" => "Nathan",
    ];
    
    // 👇 Notice: Trying to get property 'name' of non-object
    print $user->name;
    ?>
    
    0

    Khi truy cập một thuộc tính đối tượng, bạn cần sử dụng cú pháp truy cập thuộc tính

    php
    $user = [
        "name" => "Nathan",
    ];
    
    // 👇 Notice: Trying to get property 'name' of non-object
    print $user->name;
    ?>
    
    1 như hình bên dưới

    // 👇 access the name property of user
    $user->name;
    

    Nhưng nếu biến

    php
    $user = [
        "name" => "Nathan",
    ];
    
    // 👇 Notice: Trying to get property 'name' of non-object
    print $user->name;
    ?>
    
    2 là kiểu khác thì PHP sẽ hiện thông báo

    php
    $user = [
        "name" => "Nathan",
    ];
    
    // 👇 Notice: Trying to get property 'name' of non-object
    print $user->name;
    ?>
    

    Điều tương tự cũng xảy ra khi biến

    php
    $user = [
        "name" => "Nathan",
    ];
    
    // 👇 Notice: Trying to get property 'name' of non-object
    print $user->name;
    ?>
    
    2 của bạn thuộc loại khác như biến
    php
    $user = [
        "name" => "Nathan",
    ];
    
    // 👇 Notice: Trying to get property 'name' of non-object
    print $user->name;
    ?>
    
    4

    php
    $user = "name: Nathan";
    
    // 👇 Notice: Trying to get property 'name' of non-object
    print $user->name;
    ?>
    

    Thông báo PHP này có thể xuất hiện khi bạn sử dụng vanilla PHP, WordPress hoặc Laravel để phát triển ứng dụng của mình

    PHP không dừng thực thi tập lệnh vì thông báo này, nhưng lệnh

    php
    $user = [
        "name" => "Nathan",
    ];
    
    // 👇 Notice: Trying to get property 'name' of non-object
    print $user->name;
    ?>
    
    5 sẽ không xuất ra gì

    Vì vậy, nếu bạn có một mã như thế này

    php
    
    $user = [
        "name" => "Nathan",
    ];
    
    print "

    PHP output:

    "
    ;
    print "

    ".$user->name."

    "
    ;
    print "

    End

    "
    ;
    ?>

    đầu ra sẽ là

    PHP Notice of non-objectThông báo PHP về phi đối tượng

    Dòng thứ ba

    php
    $user = [
        "name" => "Nathan",
    ];
    
    // 👇 Notice: Trying to get property 'name' of non-object
    print $user->name;
    ?>
    
    5 vẫn được in ngay cả khi dòng thứ hai bị lỗi

    Để giải quyết vấn đề này, trước tiên bạn cần kiểm tra loại biến

    php
    $user = [
        "name" => "Nathan",
    ];
    
    // 👇 Notice: Trying to get property 'name' of non-object
    print $user->name;
    ?>
    
    7 đó

    Sau đó, bạn cần điều chỉnh bộ truy cập biến theo loại

    Bạn có thể kiểm tra loại biến bằng cách sử dụng hàm

    php
    $user = [
        "name" => "Nathan",
    ];
    
    // 👇 Notice: Trying to get property 'name' of non-object
    print $user->name;
    ?>
    
    8

    php
    $user = [
        "name" => "Nathan",
    ];
    
    var_dump($user); 
    

    Đầu ra của

    php
    $user = [
        "name" => "Nathan",
    ];
    
    // 👇 Notice: Trying to get property 'name' of non-object
    print $user->name;
    ?>
    
    8 sẽ hiển thị loại biến
    php
    $user = [
        "name" => "Nathan",
    ];
    
    // 👇 Notice: Trying to get property 'name' of non-object
    print $user->name;
    ?>
    
    2

    array(1) { ["name"]=> string(6) "Nathan" }
       👆
    variable type           
    

    Nếu biến là một đối tượng, thì

    php
    $user = [
        "name" => "Nathan",
    ];
    
    // 👇 Notice: Trying to get property 'name' of non-object
    print $user->name;
    ?>
    
    8 sẽ hiển thị

    object(stdClass)#1 (1) { ["name"]=> string(6) "Nathan" }
    

    Trong cả hai đầu ra ở trên, PHP sử dụng dấu ngoặc nhọn

    php
    $user = "name: Nathan";
    
    // 👇 Notice: Trying to get property 'name' of non-object
    print $user->name;
    ?>
    
    2 trước các phần tử và thuộc tính của mảng và đối tượng

    Đây là lý do tại sao mọi người thường nhầm một mảng với một đối tượng. Bạn cần chú ý đến đầu ra ngoài cùng bên trái thay vì nội dung như hình bên dưới

    PHP var_dump array vs objectMảng var_dump PHP so với đối tượng

    Khi biến là một

    php
    $user = "name: Nathan";
    
    // 👇 Notice: Trying to get property 'name' of non-object
    print $user->name;
    ?>
    
    3, bạn sử dụng bộ truy cập phần tử mảng
    php
    $user = "name: Nathan";
    
    // 👇 Notice: Trying to get property 'name' of non-object
    print $user->name;
    ?>
    
    4 thay vì
    php
    $user = [
        "name" => "Nathan",
    ];
    
    // 👇 Notice: Trying to get property 'name' of non-object
    print $user->name;
    ?>
    
    1 như thế này

    php
    $user = [
        "name" => "Nathan",
    ];
    
    print $user["name"]; // Nathan
    ?>
    

    Nếu đó là một

    php
    $user = [
        "name" => "Nathan",
    ];
    
    // 👇 Notice: Trying to get property 'name' of non-object
    print $user->name;
    ?>
    
    4, thì hãy truy cập trực tiếp vào biến đó bằng tên của nó

    php
    $user = "name: Nathan",
    
    print $user;
    

    Để kết luận, Thông báo PHP. Cố gắng lấy thuộc tính của phi đối tượng xuất hiện khi bạn cố gắng truy cập một biến không phải đối tượng như một đối tượng (sử dụng

    php
    $user = [
        "name" => "Nathan",
    ];
    
    // 👇 Notice: Trying to get property 'name' of non-object
    print $user->name;
    ?>
    
    1 để lấy giá trị thuộc tính)

    Để giải quyết vấn đề này, bạn cần kiểm tra loại biến và điều chỉnh bộ truy cập cho phù hợp

    Hầu hết thời gian, bạn đang nhầm một mảng với một đối tượng, vì vậy việc thay đổi bộ truy cập từ

    php
    $user = [
        "name" => "Nathan",
    ];
    
    // 👇 Notice: Trying to get property 'name' of non-object
    print $user->name;
    ?>
    
    1 thành
    php
    $user = "name: Nathan";
    
    // 👇 Notice: Trying to get property 'name' of non-object
    print $user->name;
    ?>
    
    4 sẽ giải quyết được vấn đề

    Nhận ID thuộc tính của đối tượng không phải là gì?

    Thông báo PHP. Việc cố lấy thuộc tính không phải đối tượng xuất hiện khi mã của bạn cố truy cập vào một biến không phải là loại đối tượng .

    Cố gắng lấy thuộc tính của đối tượng không nghĩa là gì?

    Lỗi xảy ra khi bạn cố truy cập thuộc tính của một đối tượng không phải là đối tượng . Trong trường hợp này, bạn không thể truy cập thuộc tính, vì $result không phải là một đối tượng. Đó là một boolean = false. Một điều là kiểm tra xem một biến có phải là một đối tượng hay không bằng cách sử dụng is_object của PHP.