我正在使用具有本地化功能的laravel(5.1)刀片模板引擎.
有一个语言文件messages.php
的内部/resources/lang/en/
文件夹:
return [
'welcome' => 'welcome',
Run Code Online (Sandbox Code Playgroud)
在我的刀片模板中,使用以下trans
方法调用欢迎消息:
{{ trans('messages.welcome') }}
Run Code Online (Sandbox Code Playgroud)
在某些情况下,我需要显示相同的消息,但首字母大写("欢迎").我不想在翻译文件中使用重复记录.
我怎么处理这个?
在刀片模板中,我使用last()方法查找foreach循环的最后一次迭代:
@foreach ($colors as $k => $v)
<option value={!! $v->id !!} {{ $colors->last()->id==$v->id ? 'selected':'' }} > {!! $v->name !!} </option>
@endforeach
Run Code Online (Sandbox Code Playgroud)
好吗?也许有一种Laravel风格的方式可以做同样的事情?
我需要在循环中连接几个字符串并将结果赋值给变量:
格式化字符串示例:
result=$(printf '| %-15s| %-25s| %-15s| %-15s| %-15s\n' $size $name $visits $inbound $outbound);
Run Code Online (Sandbox Code Playgroud)
从我的角度来看,它应该像这样工作:
result=''
while read somevar
do
...
outbound=`cat "$www_path/$name/access.log"|grep \`date +"%d/%b/%Y"\`|awk '{ sum+=$11} END {print sum/1024/1024}'`
result=$(printf '%s| %-15s| %-25s| %-15s| %-15s| %-15s\n' $result $size $name $visits $inbound $outbound);
...
done
echo $result
Run Code Online (Sandbox Code Playgroud)
但它没有:(
UPD:
完整代码列表如下:
www_path='/var/www';
result='';
cd /var/www/; ls -d */ | while read i ; do basename "$i" ; done
while read i;
do du -sh "$i"|
while read size name
do
visits=`cat …
Run Code Online (Sandbox Code Playgroud) 如果集合是从数组创建的:
$collection = collect();
$collection->push([
'var1'=>'value1',
'var2'=>'value2'
]);
Run Code Online (Sandbox Code Playgroud)
是否有可能以类似于雄辩集合属性的方式获取特定键的值?
$collection->var1
Run Code Online (Sandbox Code Playgroud) 在几个控制器中,我必须使用相同的方法将结果显示为具有列排序功能的表:
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的最佳方法是什么?
我需要检查输入的字符串数组,如果至少一个数组元素为空,则发出警告。
使用以下规则:
return Validator::make($data, [
'branches' => 'array',
'branches.*' => 'filled|max:255'
]);
Run Code Online (Sandbox Code Playgroud)
然而,填充规则似乎不起作用(而 min:1 工作正常)。它是否应该与数组元素一起使用?
更新: 分支数组不是强制性的,但如果存在,它应该包含非空元素。
更新: 终于在我的验证规则中发现了错误。它应该看起来像
return Validator::make($data, [
'branches' => 'array',
'branches.*.*' => 'filled|max:255'
]);
Run Code Online (Sandbox Code Playgroud)
因为输入数组是数组的数组。现在填充的规则可以按照我的输入数据的预期工作。
我在控制器中使用 auth:api 中间件(Laravel 5.2)。
class RestfulController extends Controller
{
public function __construct() {
$this->middleware(['api', 'auth:api'], ['except' => ['login'] ]);
}
}
Run Code Online (Sandbox Code Playgroud)
路线:
Route::group(['prefix' => 'api'], function () {
Route::get('/login', ['uses' => 'RestfulController@login', 'as'=>'login']);
Route::get('/list', ['uses' => 'RestfulController@list', 'as'=>'list']);
});
Run Code Online (Sandbox Code Playgroud)
如果请求不包含或包含无效的 api_token 框架将重定向到登录页面。相反,我想返回带有错误的 JSON 响应。如何实施?
laravel ×6
php ×5
laravel-5 ×4
blade ×2
arrays ×1
bash ×1
laravel-5.1 ×1
printf ×1
shell ×1
validation ×1