Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 41

0
votes
answers
14 views
+10

在選擇查詢中選擇MYSQL

1

您好!我有一個需要輸出屏幕數據的查詢。
每個屏幕有4個展位可供展示。我需要一個查詢有一個結果(因爲我只有一個屏幕),並有4個展位(怎麼我分配的4個展位)在選擇查詢中選擇MYSQL

這裏是我的查詢:

$result = DB::select(" 
    SELECT 
     `A`.`scr_name`, 
     `A`.`mission_id`, 
     `B`.`booth_id`, 
     `E`.`name` 
    FROM `tbl_screen` `A` 
    LEFT JOIN 
     `tbl_screen_booths` `B` 
    ON `B`.`screen_id` = `A`.`id` 
    LEFT JOIN 
     `tbl_service_booths` `C` 
    ON `B`.`booth_id` = `C`.`id` 
    LEFT JOIN 
     `tbl_missions_services` `D` 
    ON `C`.`mission_services_id` = `D`.`id` 
    LEFT JOIN 
     `tbl_services` `E` 
    ON `D`.`service_id` = `E`.`id` 
    WHERE `A`.`mission_id` = $mission_id 
    GROUP BY 
     `B`.`booth_id`; 
"); 

return $result; 

我想是這樣這樣的:

"scr_name": "Test Screen", 
"mission_id": 2, 
"name": "booth1", //index[0] 
"name": "booth2", //index[1] 
"name": "booth3", //index[2] 
"name": "booth4" //index[4] 

我的查詢返回的是這樣的:

[ 
{ 
"scr_name": "Test Screen", 
"mission_id": 2, 
"booth_id": 7, 
"name": "booth1" 
}, 
{ 
"scr_name": "Test Screen", 
"mission_id": 2, 
"booth_id": 9, 
"name": "booth2" 
}, 
{ 
"scr_name": "Test Screen", 
"mission_id": 2, 
"booth_id": 10, 
"name": "booth3" 
}, 
{ 
"scr_name": "Test Screen", 
"mission_id": 2, 
"booth_id": 11, 
"name": "booth4" 
} 
] 
沙发
0
1

結果還好..只是需要一點點迭代來獲取值..

$data['scr_name'] = $result[0]->scr_name; 
$data['mission_id'] = $result[0]-> mission_id; 

foreach($result as $index => $item) { 
    $data['name'.($index+1)] => $item->name; 
} 

結果:

"scr_name": "Test Screen", 
"mission_id": 2, 
"name1": "booth1", //index[0] 
"name2": "booth2", //index[1] 
"name3": "booth3", //index[2] 
"name4": "booth4" //index[4] 

數組鍵不能有相同的鍵名

+0

那會做訣竅,謝謝! –

+0

但是這不適合,如果我有多個屏幕,因爲它會返回多個結果。 –

+0

然後你需要迭代數據..把一些邏輯..然後產生輸出..這只是你的數據的示例 – ZeroOne

0
votes
answers
10 views
+10

Laravel Passport API測試不起作用

1

我正在嘗試第一次使用Laravel護照。我已經安裝護照,併成立了一個客戶。我正在使用發佈人進行測試。我在標題內容類型和授權中給了兩件事,但它將我重定向回登錄頁面。我試圖通過這條路線Laravel Passport API測試不起作用

Route::get('articles', '[email protected]')->middleware('auth:api'); 

讓所有的物品//我已經改變了所有的東西在後臺從laravel DOC

use HasApiTokens, Notifiable; 

     Passport::routes(); 

'api' => [ 
     'driver' => 'passport', 
     'provider' => 'users', 
    ], 

my postman capture

+0

你把這個''>中間件('auth:api')'放在哪個文件中? web.php或api.php? – C2486

+0

我把它放在web.php –

+0

改變所有路由到api.php而不是web.php並嘗試? – C2486

沙发
0
0

確保您運行php artisan passport:install然後php artisan migrate

+0

我知道......這不是問題 –

+0

@MirthfulNahid:你把路由給api.php了嗎?並嘗試作爲'/ api/route-name'? – C2486

+1

@MirthfulNahid你缺少空間它應該是'持票人yourtoken' –

0
votes
answers
29 views
+10

Laravel郵件參數(sendmail/smtp)

0

我想弄清楚如何設置我的郵件參數。Laravel郵件參數(sendmail/smtp)

我有一個域名production.mydomain.be。我創建了一個郵件地址[email protected]。但我的問題是現在,我如何設置我的郵件參數?我選擇了sendmail還是smtp?

Laravel文檔對sendmail/smtp沒有太多的說明。

+0

https://stackoverflow.com/questions/24709988/laravel-smtp-email –

+0

這不是關於Laravel,它是關於你的服務器。你的服務器上是否安裝了郵件服務器(例如Postfix)? –

+0

已安裝Postfix。我應該使用smtp.mydomain.be而不是smtp.gmail.com? – nielsv

沙发
0
1

你應該選擇smtp

您需要填寫usernamepassword字段順序與SMTP服務器登錄,並且還提供與hostport該連接的有效信息。您的服務器管理員應該爲您提供該信息以及加??密。

0
votes
answers
19 views
+10

創建中間件,但它不在Laravel 5.5中工作

-2

我想爲特定用戶驗證視圖文件。我爲此創建了中間件。以下是中間件的代碼: -創建中間件,但它不在Laravel 5.5中工作

namespace AppHttpMiddleware; 

use Closure; 

use IlluminateSupportFacadesAuth; 

class ClientAuth 
{ 
    public function handle($request, Closure $next) 
    { 
     if(Auth::user() && Auth::user()->account_type==3) 
     { 
      return $next($request); 
     } 

      return redirect('/'); 

    } 
} 

接下來,我在kernel.php文件中調用了'客戶端'中間件。以下是代碼: -

protected $routeMiddleware = [ 
    'auth' => IlluminateAuthMiddlewareAuthenticate::class, 
    'auth.basic' => IlluminateAuthMiddlewareAuthenticateWithBasicAuth::class, 
    'bindings' => IlluminateRoutingMiddlewareSubstituteBindings::class, 
    'can' => IlluminateAuthMiddlewareAuthorize::class, 
    'guest' => AppHttpMiddlewareRedirectIfAuthenticated::class, 
    'throttle' => IlluminateRoutingMiddlewareThrottleRequests::class, 
    'admin' => AppHttpMiddlewareisAdmin::class, 
    'client' => AppHttpMiddlewareClientAuth::class 
]; 

然後,我已經在路由中調用了它。

Route::group(['middleware' => ['auth','client']], function() 
{ 

    Route::get('clientdatabase', 
    'ClientDatabase[email protected]'); 

}); 

這是行不通的。我哪裏錯了?

+3

「不工作」不是什麼hapening ......你有什麼期望發生的說明,什麼是真正發生 – lagbox

+0

你不需要身份驗證的中間件 – madalinivascu

+0

如果我刪除AUTH中間件,它不起作用 –

沙发
0
-2

您的呼叫在路由中是錯誤的。 例如

Route::middleware(['auth','client'])->group(function() { 

     Route::get('clientdatabase','ClientDatabase[email protected]'); 

    }); 
+0

這只是一種替代方式註冊組 – lagbox

+0

謝謝!但仍然沒有改變。 –

+1

那麼,仍然「不工作」,對吧? – Amarnasan

0
votes
answers
13 views
+10

Laravel自定義驗證和ajax

1

我的Laravel 4.2項目的驗證是使用Ardent包完成的。在去Laravel 5.5之後,我已經取消了Ardent,並希望通過表單請求來完成Laravel的本地驗證。Laravel自定義驗證和ajax

我的問題是,Ajax調用是這樣的驗證之前:

public function postRegisterAjax(A) 
{ 
    try { 
     ... 
    } catch (ExceptionBag $e) { 
     $msg = $e->getMessageBag()->all(':message'); 
     $status = Status::ERROR; 
    } 

    return $this->responseJson($status, $msg); 
} 

現在我介紹UserValidationRequest類,我想Ajax調用把我的錯誤信息,而無需重新加載頁面。爲了做到這一點,我需要將狀態和消息轉發爲Json響應。

不知何故,我想這樣做與驗證掛鉤後,但它不工作:

protected function getValidatorInstance() 
{ 
    $validator = parent::getValidatorInstance(); 

    if ($validator->fails()) { 
     Log::info($validator->errors()); 

     $msg = $validator->errors(); 
     $status = Status::ERROR; 

     return response()->json(['response' => [ 
      'status' => $status, 
      'msg' => $msg, 
     ]]); 
    } 

    return $validator; 
} 

的代碼失敗在return response()Method passes does not existIlluminate/Support/Traits/Macroable.php:96)。

有誰知道似乎是什麼問題?

沙发
0
0

從Laravel 5.x版本(不確定),failedValidation()方法是在表單請求中引入的,而不是Laravel 4.x的作爲response()

public function failedValidation(Validator $validator) 
{ 
    if ($validator->fails()) { 
     $status = Status::ERROR; 
     throw new HttpResponseException(response()->json(["response" => [ 
      'msg' => $validator->errors()->all(':message'), 
      'status' => $status 
     ]])); 
    } 

    return response()->json(["response" => [ 
     'msg' => 'User successfully registered', 
     'status' => Status::SUCCESS 
    ]]); 
} 

我通過重寫該方法在我的形式要求定製我的需求響應解決了我的問題

0
votes
answers
14 views
+10

UrlGenerationException:缺少必需的參數[路線:topics.update] [URI:主題/ {}話題]

0

我得到這個錯誤:UrlGenerationException:缺少必需的參數[路線:topics.update] [URI:主題/ {}話題]

Missing required parameters for [Route: topics.update] [URI: topics/{topic}]. (View: C:xampphtdocsphpboards
esourcesviews	opicsedit.blade.php) 

這是鏈接,將採取用戶編輯:

<a href="/boards/topics/edit/{{$topic->id}}" class="btn btn-default">Edit</a> 

這是編輯控制器:

$topic = Topic::find($id); 
return view('topics.edit')->with('topic', $topic); 

這是路線:

Route::get('/boards/topics/edit/{id}', '[email protected]'); 

這是編輯的形式:

<div class="container"> 
    {!! Form::open(['action' => '[email protected]', 'method' => 'POST']) !!} 
     <div class="form-group"> 
      {{ Form::label('title', 'Title') }} 
      {{ Form::text('title', $topic->topic_title, ['class' => 'form-control', 'placeholder' => 'Title of the Post']) }} 
     </div> 
     <div class="form-group"> 
      {{ Form::label('desc', 'Desc') }} 
      {{ Form::textarea('desc', $topic->topic_body, ['class' => 'form-control', 'placeholder' => 'Description of the Post']) }} 
     </div> 
     {{ Form::submit('Submit', ['class' => 'btn btn-default']) }} 
    {!! Form::close() !!} 
</div> 

我做了什麼錯在這裏?

+0

@ParantapParashar但是對於什麼?併爲哪個控制器? –

+0

你的代碼有太多的錯誤。 –

+0

我認爲你必須把你的更新方法和路線放在這裏。 –

沙发
0
1

相反的:

{!! Form::open(['action' => '[email protected]', 'method' => 'POST']) !!} 

使用

{!! Form::open(['url' => route('topics.update', $topic->id), 'method' => 'POST']) !!} 

,因爲你的路線,你需要傳遞要更新的話題ID。此外,使用named routes代替Controller @ method表示法更合理。

+0

是的,它工作。謝啦。 –

板凳
0
1

讓我們承認您的update()方法已經在您的TopicController上實現。

首先需要聲明另一條路線:

Route::put('/boards/topics/edit/{id}', '[email protected]'); 
//  ^^^ 

然後通過這個改變你的模子開口:

{!! Form::open(['action' => ['[email protected]', $topic->id], 'method' => 'put']) !!} 
//              ^^^^^^^^^^    ^^^ 

它應該工作。

+0

同樣的錯誤.. –

+0

你確定你已經修改了你的'Form :: open'參數嗎?試試這個命令:'artisan route:clear && artisan cache:clear' –

+0

上面的解決方案工作。我沒有通過帖子的ID。這是創建錯誤。 –

0
votes
answers
13 views
+10

-bash:laravel:命令沒有找到 - Mac高Siera

0

我今天安裝了一個新的Sierra版本(在重新設置我的整個mac之後),現在我正在安裝所有與編程有關的東西,比如現在Laravel安裝程序。-bash:laravel:命令沒有找到 - Mac高Siera

我在安裝laravel安裝程序時遇到了問題,並且出現了我想的路徑。 我知道有很多問題有點類似於這個,但由於某種原因,我還沒有找到正確的答案。

因此,作爲Laravel的文檔說我安裝了作曲家,並且工作得很好。之後,我用作曲家安裝了Laravel安裝程序。我在.bashrc文件中放置了我的路徑的命令(?),但在我的終端重新打開後,找不到命令Laravel。我以前知道這件事情是屁股疼痛,我也不是很熟悉命令行中的所有這些東西,所以這對我來說很難。

我做了什麼:

1)我安裝了作曲家。之後,我在我的終端做了mv composer.phar /usr/local/bin/composer。我也做過mkdir -p /usr/local/bin,因爲我有一個全新的安裝,所以這些目錄當然沒有找到,因爲它們不存在。

2)之後,我在終端中運行composer global require "laravel/installer"。這一切都很好。

3)最後一步是用PATH做這件事。我仍然不知道我是否做對了。我所做的是nano ~/.bashrc,然後將export PATH=~/.composer/vendor/bin:$PATH添加到此文件。這不起作用,所以我仍然不能在我的終端使用Laravel ..我對這個source命令瞭解不多,但是當我做source ~/.bashrc時,我可以使用這個Laravel命令,但是當我打開一個新的選項卡或窗口時,我不能再使用它了。

4)除了.bashrc文件中的export PATH=~/.composer/vendor/bin:$PATH我還在該文件中試過export PATH="$HOME/.composer/vendor/bin:$PATH"。那也不管用。

有人可以幫助我嗎?很高興知道,我只是安裝了一個全新的操作系統,除了安裝一些正常的程序之外什麼也沒做。 Laravel/Composer是我第一次與終端有關的事情。

沙发
0
1

這可能是你的終端程序設置爲創建一個登錄shell,這不源的?/ .bashrc

嘗試添加該到?/ .bash_profile

[[ -f ~/.bashrc ]] && . ~/.bashrc 
+0

太好了!有點奇怪,它不能在箱子外面工作,但我猜這已經足夠了。 – Gijsberts

0
votes
answers
24 views
+10

Laravel和AngularJs SPA訪問直接URL時出錯

0

這可能是一個愚蠢的問題,因爲我是Laravel的新手。我正在使用angular和laravel來製作單頁應用程序。我試圖從「todos」表中獲取所有記錄,並將它們顯示在todo.html上點擊「查看所有待辦事項」按鈕。 「查看所有Todos」轉到「localhost:8000/tasks」URL。當我點擊那個按鈕時,我得到了所有的待辦事項沒有問題。但是當我嘗試直接在瀏覽器上訪問該URL時,我從laravel Todocontroller獲得了json數組。Laravel和AngularJs SPA訪問直接URL時出錯

這裏是我的路線/ web.php

Route::resource('/todo', 'TodoController'); 

Laravel TodoController控制器

public function index() 
{ 
    return Todo::all(); 
} 

這裏是我的角碼

myApp.config(['$routeProvider', '$locationProvider', 

function ($routeProvider, $locationProvider) { 
    $locationProvider.hashPrefix(''); 

    $routeProvider.when('/', { 
     templateUrl: 'views/home.html', 
    }); 
    $routeProvider.when('/todo', { 
     templateUrl: 'views/todo.html', 
     controller: 'todoController' 
    }); 
    $locationProvider.html5Mode(true); 

}]); 

myApp.controller('taskController', function($scope, $http) { 
$http({ 
    method: 'get', 
    url: 'todo' 
}).then(function (response) { 
    $scope.about = response.data 
},function (error){ 
    console.log(error, 'can not get data.'); 
}); 
}); 
沙发
0
0

你知道你還可以返回雄辯集合從你的路線或控制器?他們將自動轉換爲JSON。試一試!

https://laravel.com/docs/5.5/responses

如果你想返回HTML,在你的控制器

public function index() 
{ 
    return view('todos')->with('todos',Todo::all()); 

} 

https://laravel.com/docs/5.5/views

+0

感謝您的回覆。但目的不是返回json數組。我想顯示和HTML頁面包含所有待辦事項而不是JSON數組的HTML表格 – Aamish

+0

所以你必須使用一個視圖https://laravel.com/docs/5.5/views –

板凳
0
0

您從您的角度控制器,以及你的Laravel控制器針對同一網址中使用的視圖。您應該使用Laravel作爲API或服務,而您允許角度做路由。檢查這個更多的信息。 Laravel API routes

+0

你的意思是我必須提到所有的API路線。 PHP的? – Aamish

+0

我的意思是你的laravel路線,你可以有一個前綴可以說_api_所以你的laravel路線有_yourdomain.com/api/task_和角度控制器可以有_yourdomain.com/task_。那樣,你有更清晰的。 –

+0

是的,我明白了。謝謝。但是,如果我直接在瀏覽器中訪問yourdomain.com/api/task,那麼我仍然會得到json響應。有沒有辦法直接從角度路線訪問laravel控制器? – Aamish

0
votes
answers
26 views
+10

Laravel查詢的時間範圍

1

我正在尋找一種方法,使哪個比較時間查詢,早晨 - 6至9日 - 9日至12日,晚上12 - 5Laravel查詢的時間範圍

現在,我使用在HTML

<select name="time" id="time"> 
      <option disabled value="">Choose A Time</option> 
      <option value="06:00 - 09:00">Morning - 06:00 - 09:00 </option> 
      <option value="10:00 - 13:00">Day - 10:00 - 13:00 </option> 
      <option value="14:00 - 18:00">Evening - 14:00 - 18:00</option> 
     </select> 

,我試圖查詢它像這樣的select選項,datetime我從數據庫中獲取它,它就像2017-12-13 06:15:00

$query->whereTime('datetime', '>=', $request->get('time').':00')      
    }); 

我沒有我dea如何比較一段時間,如比較06:00-09:0006:15

+0

什麼是'datetime'列的數據類型? –

+0

這是'datetime'數據類型 – Cowgirl

沙发
0
1

您可以使用與上面相同的查詢來查找兩次之間的錶行。

$query->whereTime('timestamp', '>=', CarbonCarbon::parse('06:00')) 
    ->whereTime('timestamp', '<=', CarbonCarbon::parse('06:30')) 

不要串連日期字符串這樣,

$request->get('time').':00') 

這是不太合適的,你可能會失敗,這種方法。

+0

好吧,但我有一個像'06:00-09:00'我如何使用這個碳解析,一個是'06:00',一個用於'09:00' – Cowgirl

+0

$ morning_time_array =爆炸( ' - ', '06:00-09:00'); $ morning_time_array [0]將是'06:00' 也應該使用whereBetween,如: - > whereBetween( '時間',[06:00' ,'09:00' ]) - >獲得(); – Riccardo

0
votes
answers
15 views
+10

Laravel登記錯誤,數據庫連接,但收到奇怪的錯誤

0

我已經連接到我的數據庫作爲成功我能盡我開始遷移,用戶表和密碼重置的等Laravel登記錯誤,數據庫連接,但收到奇怪的錯誤

這是我第一次運行php artisan make:auth 當我爲laravel應用程序註冊一個新用戶時,出現此錯誤。

SQLSTATE [HY000] [1045]訪問被拒絕的用戶宅「@ '本地主機' (使用密碼:YES)(SQL:SELECT COUNT(*)作爲骨料從users 其中email =毫安@雅虎.COM)

這裏是我的.ENV

DB_CONNECTION=mysql 
DB_HOST=127.0.0.1 
DB_PORT=3306 
DB_DATABASE=larabiz 
DB_USERNAME=root 
DB_PASSWORD= 

答案是很簡單,但很奇怪。

運行php artisan make:auth。然後運行php artisan migrate。關閉你的服務器,重啓服務器,然後註冊你的第一個用戶。這對我很有用,所以Laravel無法在註冊期間添加用戶,而無需先重新啓動服務器。這花了我5新鮮的Laravel安裝和三個小時的工作!我在淚水中:)。

+2

如果這是linux,請從根目錄下執行'grep -R homestead *'。或者查看所有的'database.php'配置文件,看看'宅基地'可能藏在哪裏。 – aynber

+0

這是一個數據庫連接錯誤。最終不好的用戶名/密碼。 – halojoy

+0

您的數據庫用戶名和密碼與錯誤中提到的內容不同?這是爲什麼? – mohessaid

沙发
0
0

您是否嘗試重新載入配置?

php artisan config:clear

,或者清除緩存?

php artisan cache:clear

板凳
0
0

轉到config/database.phpconnections手動設置值的連接。

地板
0
0

答案很簡單但很奇怪。

運行php artisan make:auth。 然後運行php artisan migrate。 關閉你的服務器,重啓服務器,然後註冊你的第一個用戶。這對我很有用,所以Laravel無法在註冊期間添加用戶,而無需先重新啓動服務器。這花了我5新鮮的Laravel安裝和三個小時的工作!我在淚水中:)。

+0

中所述重新啓動服務器? – lagbox

+0

我關閉了xampp並重新啓動了我的git bash。我的數據庫連接沒有問題,我已經開始並完成了近100個Laravel應用程序,所以我非常瞭解如何使用.env連接到我的數據庫。當您運行php artisan make:auth時,您必須重新啓動服務器。我在YouTube上找到了答案https://www.youtube.com/watch?v=MIRzJgxhgYo&t=87s。開始觀看7分20秒。 – Russell