Asked Sep 26th, 2018 4:17 AM 431 0 4
  • 431 0 4
+1

Call to undefined function trong lavarel

Share
  • 431 0 4

Xin chào mọi người. Hiên tại em đang trong quá trình tìm hiểu frameword lavarel 5. và đang bị lỗi "Call to undefined function"

Em khai báo một thư viện riêng như thế này: app/Function/function.php và khai báo luôn trong composer.json

rồi vào cmd cập nhật lại composer dumpaotoload.

Đến khi gọi hàm trong phần view bị bị báo lỗi là "Call to undefined function"

Đây là phần view:

Đây là phân controller:

Đây là phần function demo:

Cám ơn cả nhà đã giúp đỡ.Chúc mọi người ngày làm việc thật tốt 😃

4 ANSWERS


Answered Sep 26th, 2018 11:35 AM
Accepted
+3

Có vẻ ko liên quan đến thông báo của Laravel, nhưng mà function khai báo có param, khi gọi lại không truyền param là chết rồi. Thử thêm param rồi làm theo hướng dẫn của mọi người ở trên xem.

Ngoài ra cách mình hay dùng là mình sẽ ko viết helper và cho vào autoload, mà mình viết class Helper, rồi chỗ nào cần sử dụng thì mình gọi class này với method tương ứng thôi.

Ví dụ thế này: Bạn thêm class mới tại app\Helpers\Hepler.php

<?php
namespace App\Helpers;

class Helper 
{
    public static function helper() 
    {
        //Do something
    }
}

Ngoài blade sẽ dùng thế này:

@php
   \App\Helpers\Helper::helper()
@endphp
Share
Lê Văn Quý @menah101
Sep 26th, 2018 12:49 PM

thank bạn nhé

0
| Reply
Share
Answered Sep 26th, 2018 6:41 AM
+3

Đây là vấn đề liên quan đến autoload thôi, không nhất thiết phải post nhiều ảnh controller với view như vậy. Bạn thử mở file /path/to/project/vendor/composer/autoload_files.php xem có thấy đường dẫn đến function.php không?

Share
Lê Văn Quý @menah101
Sep 26th, 2018 7:11 AM

9.PNG có nhé đường dẫn vẫn tồn tại vậy vấn đề là ơ đâu ta ???

0
| Reply
Share
Sep 26th, 2018 7:25 AM

@menah101

  • Tôi chưa thể đoán ra nguyên nhân do đâu vì những bước mà bạn làm nó không có "uẩn khúc" gì cả.
  • Để hiểu vấn đề rõ ràng hơn, hay thêm dd(get_included_files()); trong một file controller chẳng hạn và chạy trên trình duyệt để biết chắc chắn rằng file function.php có được load không? Nếu nó chưa được load, tôi mới có thể nghĩ về việc debug Composer.
0
| Reply
Share
Answered Sep 26th, 2018 4:22 AM
+2

Bạn chạy lại lệnh dưới đây xem có được không:

composer dump-autoload

Vì sau mỗi lần add file vào autoload mình cần generate lại file autoload.php để nó nạp file mới vào code.

Share
Lê Văn Quý @menah101
Sep 26th, 2018 5:14 AM

đã thử vẫn chưa được nó thông báo như thế này 8.PNG

0
| Reply
Share
Answered Sep 26th, 2018 11:02 AM
+2

Nếu bạn đang dùng version <= 5.4 (?) thì có thể require file function.php bên trong boostrap/autoload.php, nếu file boostrap/autoload.php không tồn tại (do framework sử dụng OPCache trong các phiên bản PHP mới hơn, nên file này hơi thừa) thì bạn thêm vào file composer.json cũng ok.

Share