Yêu cầu thg 9 26, 2018 4:17 SA 926 0 4
  • 926 0 4
+1

Call to undefined function trong lavarel

Chia sẻ
  • 926 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 CÂU TRẢ LỜI


Đã trả lời thg 9 26, 2018 11:35 SA
Đã được chấp nhận
+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
Chia sẻ
Avatar Lê Văn Quý @menah101
thg 9 26, 2018 12:49 CH

thank bạn nhé

Đã trả lời thg 9 26, 2018 6:41 SA
+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?

Chia sẻ
Avatar Lê Văn Quý @menah101
thg 9 26, 2018 7:11 SA

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

thg 9 26, 2018 7:25 SA

@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.
Đã trả lời thg 9 26, 2018 4:22 SA
+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.

Chia sẻ
Avatar Lê Văn Quý @menah101
thg 9 26, 2018 5:14 SA

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

Đã trả lời thg 9 26, 2018 11:02 SA
+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.

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí