相关疑难解决方法(0)

Laravel - 为多语言指定默认/后备字符串

我开始向使用 Laravel 作为前端的站点添加多语言。

但是,由于目前缺乏资源,我正在翻译字符串。翻译整个网站还需要一段时间。

唯一的挑战是,如果文本未翻译,显示的内容是关键。我想为此指定一个默认/后备字符串。

例如

{{ trans('site.'.$name) }}
Run Code Online (Sandbox Code Playgroud)

如果我将“Business”作为 $name 传递,并且在 site.php lang 文件中没有“Business”的翻译,我最终会site.Business在前端得到。这把一切都搞砸了。在最坏的情况下,如果没有site.Business,Laravel 应该输出Business.

更好的是它应该为默认/后备字符串提供一个选项。

这可能吗?

附带说明一下,是否有常用词的免费翻译?这将节省必须自己翻译所有内容的时间。

谢谢。

php multilingual translation laravel-4

6
推荐指数
1
解决办法
5247
查看次数

控制器之间的共享方法Laravel 5.2

在几个控制器中,我必须使用相同的方法将结果显示为具有列排序功能的表:

 public function showSearchResults(Request $req){

        $query=Service::where('title', $req->search);

        // Columns sorting 
        if ($req->has('order')){
            $order= $req->order=='asc' ? 'asc' : 'desc';
            $order_inverse=$req->order=='asc' ? 'desc' : 'asc';
        } else {
            $order='desc';
            $order_inverse='asc';
        }

         ...


        $url=$req->url().'?'.http_build_query($req->except('sortby','order','page'));
        $results=$query->with('type')->paginate(15)->appends($req->all());


        return View::make('services.search_results')
                    ->with('results', $results)
                    ->with('url',$url)
                    ->with('sortby', $sortby)
                    ->with('order', $order)
                    ->with('order_inverse', $order_inverse);

    }
Run Code Online (Sandbox Code Playgroud)

在这种情况下避免DRY的最佳方法是什么?

php laravel laravel-5

5
推荐指数
1
解决办法
4102
查看次数

我在哪里放置我的自定义类和函数在 Laravel 中

我正在尝试构建一个包含一些常用函数的类,我可以在我的项目的任何地方使用这些函数。我不知道在哪里构建包含类的 PHP 文件,也不知道如何调用它们...谁能帮我找出所有这些东西的位置?谢谢!!!

/App/Http/Helpers/MyClasses.php

<?php

class PopularFunctions {
  public function sayhi() {
    echo 'hi';
  }
}

?>
Run Code Online (Sandbox Code Playgroud)

/App/Http/Controllers/TasksController.php

<?php

namespace App\Http\Controllers;

use App\Http\Helpers\MyClasses;

class TasksController extends Controller {

  public function index() {

    $myfunctions = new PopularFunctions();
    $myfunctions->sayhi();

  }

}
Run Code Online (Sandbox Code Playgroud)

这将返回:找不到类“App\Http\Controllers\PopularFunctions”。

php namespaces class function laravel

4
推荐指数
3
解决办法
6737
查看次数

在 Laravel 中使用助手的最佳实践是什么

你好,我正在创建一个大型 Laravel 应用程序。

我想创建一系列辅助函数(可能是 1000 个函数)以在应用程序内的模板和模块中使用。

做这些助手的最佳实践是什么?

  1. 使用辅助类并将函数放入类中
  2. 使用函数和自动加载帮助文件

php laravel

3
推荐指数
1
解决办法
704
查看次数

如何在Laravel 5的每个控制器中提供自定义辅助函数

我刚刚阅读这篇文章,以创建一个能够从任何控制器访问的全局函数.但我不明白它是如何工作的.

我想让任何控制器都可以访问变量'services'.所以,我制作General.php并将其放在app/Http中.这是代码.

<?php
class General {

   public function getServices() {
      $services = "SELECT * FROM products";
      return $services;
   }
}
Run Code Online (Sandbox Code Playgroud)

在控制器中我包括它

<?php
namespace App\Http\Controllers;

use App\Http\General;
use Illuminate\Http\Request;

class HomeController extends Controller {
   public function index() {

       $title = 'Our services';
       $services = General::getServices();

       return view('welcome',  compact('title','services'));

   }
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到了错误Class 'App\Http\General' not found.然后我将如何能够帮助任何人都会感激不尽.

php laravel-5

3
推荐指数
1
解决办法
2521
查看次数

Laravel-服务提供商-绑定多个类

我知道如何绑定单个类:

public function register() {
    $this->app->bind('search', 'Laracasts\Search\Search');
}
Run Code Online (Sandbox Code Playgroud)

但是想象一下我的Laracasts\Search\目录有这些文件:

  • Search.php //类搜索
  • SearchX.php //类SearchX
  • SearchY.php //类SearchY
  • SearchZ.php //类SearchZ

将这四个文件/类绑定到搜索外观的最佳方法是什么?

我读了另一个不相关的问题,我们可以使用映射器。但是如何?

php laravel laravel-5

2
推荐指数
1
解决办法
2493
查看次数

Laravel 5:如何处理许多控制器中使用的代码

我是Laravel的新手,想知道处理重复代码的最佳实用方法.

我几乎在我的api-controller的所有功能中开始使用此代码:

// Validate parameters
$validator = Validator::make($request->all(), $this->validationRules);
if ($validator->fails()) {
    return response()->json($validator->errors(), 422);
}
Run Code Online (Sandbox Code Playgroud)

所以通常我会把它放在某个功能中.但是这个代码也用在很多其他控制器中.所以这个功能也应该被其他控制器调用.

在Laravel 5中处理这个问题的最佳做法是什么?我的第一个想法是使用此功能制作一些自己的控制器,而我的其他控制器将扩展它.

喜欢:

class MyController extends Controller
{
    protected function handleFailByPrameter($params)
    {
         ....
    }
}


class Api1Controller extends MyController
{
     public function apicall1()
     {
          $this->handleFailByPrameter($this->validationRules());
     }
}
Run Code Online (Sandbox Code Playgroud)

但也许有其他一些方法来处理这类事情?

php laravel laravel-5

2
推荐指数
1
解决办法
521
查看次数

如何在laravel 5中调用自定义助手?

我想做我自己的帮手,然后把它放进去app/http/helpers.php。这是我的助手代码:

<?php

namespace App\Helpers;
use Auth;
class helper {

    public static function is_login() {
        if(Auth::check()){
           return True;
        }else{
           return False;
        }
    }

    public static function must_login(){
        if(Auth::check()){
           return True;
        }else{
           return Redirect::to('logout');;
        }
    }
}

?>
Run Code Online (Sandbox Code Playgroud)

这是我的app.php代码:

  'aliases' => [
                'customhelper'=> App\Helpers\Helper::class
               ]
Run Code Online (Sandbox Code Playgroud)

当我将customhelper::is_login()其刀片文件用于工作时。但是当我尝试在控制器中使用customhelper::must_login()它不起作用时,我遇到了一些错误

找不到类“ App \ Http \ Controllers \ customhelper”

php laravel

2
推荐指数
1
解决办法
9996
查看次数

Laravel 8 自定义帮助函数 PHP 致命错误:无法重新声明先前在 C:(path)Helpers.php 中声明的 functionName()

我在 App\Helpers.php 中有一个自定义函数。当我在 Blade 文件中的 if 语句中使用该函数时。我在 Laragon 错误日志中看到错误。

PHP Fatal error:  Cannot redeclare CheckInvalidPlan() (previously declared in C:\laragon\www\projectname\app\Helpers.php:6) in C:\laragon\www\projectname\app\Helpers.php on line 6
Run Code Online (Sandbox Code Playgroud)

然而事情按预期进行。但为什么会导致这个错误以及如何修复它?

#更新

这是我在 Helpers.php 中的函数

function CheckInvalidPlan($id)

{

    if (Plan::find($id) == null)
    {
        return true;
    }

}
Run Code Online (Sandbox Code Playgroud)

这是我在控制器中的 if 语句。

if (CheckInvalidPlan ($request->plan_id))
        {
            return back()->with('invalid', 'Invalid membership plan spesified.');
        }
Run Code Online (Sandbox Code Playgroud)

php laravel

2
推荐指数
1
解决办法
3057
查看次数