我想将方括号字符串存储在变量中,以便我可以使用该变量来获取数组的值.我怎样才能做到这一点?
例:
$vehicle = array("car"=>"volvo","bike"=>"polygon");
$bracket1="['car']";
$bracket2="['bike']";
echo $vehicle.$bracket1;//my expected result = 'volvo';
echo $vehicle.$bracket2;//my expected result = 'polygon';
Run Code Online (Sandbox Code Playgroud)
案例假设我有这些数据
$data = array(
"vehicles"=>array(
array(
"name"=>"volvo",
"manufacturer"=>"abc",
"color"=>array("blue"=>"wonderful","red"=>"fantastic")),
array(
"name"=>"toyota",
"manufacturer"=>"def",
"color"=>array("blue"=>"awesome","red"=>"good")),
array(
"name"=>"mecedes",
"manufacturer"=>"ghi",
"color"=>array("blue"=>"nice","red"=>"great","green"=>"good","brown"=>"elegant")),
));
$fields = array(
"$data['vehicles']['name']",
"$data['vehicles']['manufacturer']",
"$data['vehicles']['color']['blue']",
"$data['vehicles']['color']['red']"
);
//a function to print those data according to user parameter($fields, it may uncertain pattern)
function get_data($data,$fields){
for($c=0;$c<count($data);$c++){
foreach($fields as $field){ //field to show
echo $field;
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
$data = array(
"vehicles"=>array(
array(
"name"=>"volvo", …Run Code Online (Sandbox Code Playgroud) 我有这样的数组:
array(2) {
[0]=> array(1) {
["name"]=> string(8) "TestName"
}
[1]=> array(1) {
["surname"]=> string(6) "iljado"
}
}
Run Code Online (Sandbox Code Playgroud)
我需要它像这样:
array(2) {
["name"]=> string(8) "TestName" ,
["surname"]=> string(6) "iljado"
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我正在尝试使用数据对象中的州/省填充下拉列表,但有许多记录具有相同的状态。我怎样才能只显示不同的状态?
这将返回不同的状态:
$states= DataObject::get()->distinct(true)->column('State');
Run Code Online (Sandbox Code Playgroud)
这在我的下拉列表中显示为不同的值:
DropdownField::create('State', 'State', $states)
->setEmptyString('(Select one)'),
Run Code Online (Sandbox Code Playgroud)
但这仅将下拉列表中的值显示为状态,而不将 ID 显示为状态。我怎样才能填充ID?
当我将它们添加到数组时它不喜欢它。
有人可以帮我DropdownField在SilverStripe 3 中将其设置为默认值吗?
目前这是我的代码:
DropdownField::create(
'HowHear',
'How did you hear of this job?',
array(
'Indeed' => 'Indeed',
'Caterer' => 'Caterer',
'Gumtree' => 'Gumtree',
'Word of mouth' => 'Word of mouth',
'Other' => 'Other',
)
)->addExtraClass('full-width'),
Run Code Online (Sandbox Code Playgroud) 我想让我的 ModelAdmin GridField 可以通过拖放进行排序。我尝试添加此代码:
$gridFieldName = 'Destributors';
$gridField = $form->Fields()->fieldByName($gridFieldName);
if ($gridField) {
$gridField->getConfig()->addComponent(new GridFieldFilterHeader(),new GridFieldSortableRows('SortOrder'));
}
Run Code Online (Sandbox Code Playgroud)
但似乎不起作用。关于如何实施它有什么想法吗?
任何帮助将不胜感激
这是Area类的功能
public function findLatestReport()
{
$getReport = Report::get()->filter('AreaID',$this->ID)
->sort('Date ASC')->first();
return $getReport;
}
Run Code Online (Sandbox Code Playgroud)
这是报告类功能
public function getWeatherStatus()
{
return $this->Fields()->filter('Name', 'Weather Status')->first();
}
Run Code Online (Sandbox Code Playgroud)
有什么方法可以显示WeatherStatus详细信息的“区域”模板。
<% loop $findLatestReport %>
{$WeatherStatus}
<% end_loop %>
Run Code Online (Sandbox Code Playgroud) 下面举一个例子来说明这个问题。下面的两个例子都给出了错误的区别:
// gives 86398 while the correct is 2sec
$diff_in_sec = strtotime('23:59:59') - strtotime('00:00:01');
// again gives 86398 while the correct is 2sec.
$diff_in_sec = Carbon::parse('00:00:01')->diffInSeconds(Carbon::parse('23:59:59'));
Run Code Online (Sandbox Code Playgroud)
我想要的是23:59:59与 相比00:00:01返回 2 秒的差异,并
00:00:01与23:59:59.
我正在尝试将URL路径拆分为数组中的单个字符串.我已经尝试了一些东西,这就像我得到的一样接近:
<?php
$url = '/category/subcategory/item';
$output = array();
$chunks = explode('/', $url);
foreach ($chunks as $i => $chunk)
{
$output[] = sprintf
(
//'<a href="#/%s">%s</a>',
implode('/', array_slice($chunks, 0, $i + 1)),
$chunk
);
}
echo implode(' >> ', $output);
include 'footer.php';
?>
Run Code Online (Sandbox Code Playgroud)
返回:
/ category >>/category/subcategory >>/category/subcategory/item
但我想尝试回来
category >> subcategory >> item
谢谢!
我有两个类:Letter和LetterFiles(附件中的文件):
class Letter extends DataObject {
private static $db = array(
'Sender' => 'Text',
'SendTo' => 'Text',
...
);
private static $has_many = array(
'Letters' => 'LetterFiles'
);
...
}
class LetterFiles extends File {
private static $has_one = array(
'Files' => 'Letter'
);
...
}
Run Code Online (Sandbox Code Playgroud)
我想在上面显示所有字母和所有附件LetterPage:
class LetterPage extends Page {
}
class LetterPage_Controller extends Page_Controller {
public function index() {
$letters = Letter::get()->sort('DateUpload');
return array(
'AllLetters' => $letters
);
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用模板 …
我遇到SilverStripe将外部URL视为相对链接的问题.
我有一个DataObject:
class Artist extends DataObject {
private static $db = array(
'Title' => 'Varchar(255)',
'Content' => 'HTMLText',
'Website' => 'Varchar(255)',
);
}
Run Code Online (Sandbox Code Playgroud)
艺术家网站通过<a href="$Website" target="_blank">.问题是URL被附加到网站的基本URL,因此我们最终得到如下内容:
<a href="mysite.com/www.artistsite.com" target="_blank">
而不是所期望的:
<a href="www.artistsite.com" target="_blank">
但是,如果$ Website包含协议(http或https),则链接按预期工作.因此,如果$ Website是http://www.artistsite.com,那么我们得到:
<a href="http://www.artistsite.com" target="_blank">
该网站包含数百个,最终成千上万的客户维护的艺术家记录.理想情况下,客户端可以粘贴URL,而不必担心每个URL都附加http或https.
有人有主意吗?这与SilverStripe论坛中描述的问题相同,但尚未发布任何解决方案.
这个站点在SilverStripe 3.6上.
看看我的代码,如果我使用echo $ html_of_questions,它可以工作.如果我使用return,则不起作用.为什么?我应该使用echo吗?因为有人告诉我应该总是在函数内部使用return.
<?php
function fruit($fruit){
$questions = [
'q1' => '<div>Is it good?</div>
<input type="text" value="submit"/>',
'q2' => '<div>where is it from?</div>
<input type="text" value="submit"/>',
];
$fruit_questions = [
'apple' => [1,3,5],
'banana' => [1,2,4],
'guava' => [17,21,4],
];
$question_keys = $fruit_questions[$fruit];
$html_of_questions = ''; // This will hold the questions to echo
foreach($question_keys as $question_key){
$html_of_questions .= $questions['q'.$question_key]
}
return $html_of_questions;//doesn't work, use echo it works
}
fruit('apple');
?>
Run Code Online (Sandbox Code Playgroud)